Страницы: 1
RSS
Распределить остатки по складам в соответствии с их приоритетами
 
Приветствую коллеги!
Задачка такая, есть несколько складов, и у каждого есть приоритет, так же есть остатки на этих складах, и потребность. Кроме того имеется какое-то кол-во товара которое надо развести по складам в соответствии с их приоритетами. Требуется сначала заполнить один склад с наивысшим приоритетом, потом остаток товара завести на другой склад, и так далее. Как может выглядеть формула для решения такой задачи?
 
Madgamer2003,
боюсь, что нужен макрос
 
Код
=МИН(D6;МАКС(0;$A$2-СУММЕСЛИМН($D$6:$G$6;$D$2:$G$2;">"&D2)))
 
МатросНаЗебре,
очень круто)))
 
Да, это круто. Спасибо!!!
 
Годами распределял остатки по складам и цехам. Волей не волей, научишься такие формулы писать :)
 
МатросНаЗебре а если у двух складов одинаковый приоритет? и заполнять их нужно одинаково
Изменено: Madgamer2003 - 17.06.2021 15:59:34
 
Код
=МИН(D6;
             МАКС(0;
                          ОКРУГЛ(($A$2-СУММЕСЛИМН($D$6:$G$6;$D$2:$G$2;">"&D2))*D6/СУММЕСЛИМН($D$6:$G$6;$D$2:$G$2;"="&D2);0)
                          )
             )
 
МатросНаЗебре спасибо еще раз, в целом работает, единственное, что при такой проверке (см скрин) видимо округление дает большую сумму к распределению, чем имеется. Можно учесть такой момент?
 
Можно округлить вниз
Код
=МИН(D6;
             МАКС(0;
                                      ОКРУГЛВНИЗ(($A$2-СУММЕСЛИМН($D$6:$G$6;$D$2:$G$2;">"&D2))*D6/СУММЕСЛИМН($D$6:$G$6;$D$2:$G$2;"="&D2);0)
                          )
             )
 
Или так
Код
=МИН(D6;
             МАКС(0;
                          ОКРУГЛ(($A$2-СУММЕСЛИМН($D$6:$G$6;$D$2:$G$2;">"&D2)-СУММЕСЛИМН($C$7:C7;$C$2:C2;D2))*D6/СУММЕСЛИМН(D$6:$G$6;D$2:$G$2;"="&D2);0)
                          )
             )
 
МатросНаЗебре спасибо за помощь!
 
МатросНаЗебре подскажите возможно ли вставить в текущий алгоритм ещё условие, что если заказ на склад выходит меньше заданного параметра, например 5 штук, то расчетную цифру везем на склад с наивысшим приоритетом?
Страницы: 1
Наверх