Страницы: 1
RSS
Последовательное вычитание потребности в материалах из их наличия
 
Добрый день.

Есть операция. с которой не могу справится, прошу подсказки / помощи - как реализовать последовательное вычитание сверху вниз в таблице по уникальному наименованию? В примере чуть более подробно расписал основную суть операции.

Решение можно формулами или с помощью Power Query.

Благодарю за помощь.
 
Экая экзотика.. Если кто-то это может решить с помощью формул - мне останется только снять шляпу и горько плакать :) от зависти, само собой.

А макросом вроде и не сложно. Добавил одну колонку, наверное ее можно было тоже реализовать в макросе, но лень.
 
100 - откуда взято? Это максимум? Навеное, нет, так как в строке 4 "Берется значение 40"...Почему в строке 5 (6) при потребности 80 (90) результат - 70 (80)? Почему в строке 22 результат бльше, чем потребность?
Показанное решение (макросом) тоже свет не пролило (результат в строках 5, 6 отличается от авторского)
Это только часть возникших вопросов. Опишите точнее задачу.

Если принять, что 100 - максимум и последовательно вычитать сверху вниз от этого числа (вернее, от остатка):
=МАКС(;МИН(B2;МИН(СУММЕСЛИ(A:A;A2;B:B);ВПР(A2;$G$2:$H$11;2;))-СУММЕСЛИ($A$1:A1;A2;$B$1:B1)))
 
Да, делая макросом я просто проигнорировал часть невнятно описанного условия )) судя по всему актуальность примера только для подкрашенных строк, остальные просто не приводились в соответствие. В подсвеченных строках было явно сказано что "Так как остатка на эту позицию уже нет она = 0", поэтому именно эта модель была использована даже там, где авторские ожидания результата этому противоречили.

100 это явно не максимум, а доступный ресурс, который для каждого типа описан в F:G.
такая себе задача на распределение ресурсов )) не очень понятно, почему последнему достается весь остаток - интересно было бы узнать, к чему это применяется в реальной жизни..
 
Цитата
Alex T. написал: судя по всему актуальность примера только для подкрашенных строк
Так это глупость... Как это - одни товары считаем, другие - берите, сколько душе угодно?

Цитата
доступный ресурс, который для каждого типа описан в F:G
Спасибо, этого я не заметил из-за широкого столбца с описанием )
В формуле заменил 100 на ВПР(A2;$G$2:$H$11;2;)

Но остается вопрос по неописанным строкам. Подождем внятное описание.
 
Цитата
vikttur написал:
Так это глупость... Как это - одни товары считаем, другие - берите, сколько душе угодно?
Не хочу скатиться в оффтоп, это просто профессиональная деформация после многих лет работы с внутренними потребителями, которые задачи и похлеще описывают ))) иногда разобраться в том, чего хотят - скилл не хуже, чем уметь сделать то что хотят :-)

судя по всему считаем везде одинаково, просто автор поленился расписать это для ВСЕХ строк, ограничившись только 3 типами наименования и приведя спектр условий - ну там, что делать если запрос есть, а остаток 0, или что делать если запрос последний, а ресурса избыток..
 
Alex T., и vikttur, прошу прощения за невнятное описание задачи. Попытаюсь объяснить подробно:
1. Есть последовательная таблица Потребности (слева на листе) и есть условно таблица Наличия (справа на листе).
2. Последовательно проверяем сверху вниз по наименованию, и, при совпадении, применяем следующие правила списания:
- если Потребность больше Наличия, то прописывается всё наличие;
- если Потребность меньше Наличия, то наверное дальше нужно проверять:
— если Потребности в данном Наименовании ниже нет, то проставляется всё Наличие;
— если Потребность присутствует в данном Наименовании ниже, то закрывается текущая Потребность из Наличия, а остаток - распределяется ниже по правилу следующего совпадения;
- если совпадения нет вообще (в примере нет такого), то Наличие не берется.
- если Потребность есть, а Наличия нет, то 0 или пусто.

Перепроверил пример - по данным правилам он проходит.

Почему нужно всё оставшееся Наличие проставлять в последнее совпадение по Наименованию - вот такое иногда бывает «тяжелое» правило в структуре предприятия:)
 
Цитата
EvgeniyLFC написал: если Потребность больше Наличия, то прописывается всё наличие
Те же строки, 5 и 6. Почему результат меньше наличия?
Почему в строке 23 результат равен потребности, если в строке 5 то же наименование с потребностью?

Цитата
Перепроверил пример - по данным правилам он проходит..
Или объясните эти расхождения, или покажите нормальный пример. И с вариантом "если совпадения нет вообще"

Формула из сообщения №3 выполняет все требования, описанные в предыдущем сообщении, кроме ввода всего остатка последнему. Проверяли?
Доработать - мелочь, но нет желания терять время, пока Вы не дали ответы на вопросы
 
Цитата
vikttur написал: Формула из сообщения №3...
Блин, потыкал и понял что надо больше на формулы налечь )) я и эту не до конца понимаю, надо покрутить разобрать
Автор, дайте плс чего vikttur просит, очень уж охота посмотреть на реализацию с остатком :)
 
Код
=ЕСЛИ(СЧЁТЕСЛИ(A3:$A$27;A2);МИН(ВПР(A2;$H$2:$I$11;2;)-СУММЕСЛИ($A$1:A1;A2;$D$1:D1);B2);ВПР(A2;$H$2:$I$11;2;)-СУММЕСЛИ($A$1:A1;A2;$D$1:D1))

вопросы те же, что у Вити - в файле желтым
Изменено: buchlotnik - 02.02.2021 01:03:58
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
vikttur написал: Почему результат меньше наличия? Почему в строке 23 результат равен потребности, если в строке 5 то же наименование с потребностью?
Блин, виноват! На листочке себе пример правильно сделал, а в файле опечатался. Файл с исправлениями прикрепляю заново.

Цитата
vikttur написал: Формула из сообщения №3... Проверяли?
Да, проверил. По логике работает правильно, кроме всего остатка последнему, как и сказали. Спасибо большое!

buchlotnik, формула уже работает как нужно. Огромная благодарность! Буду с ней работать.

Наверное уже наглость, но может кто подсказать как подобное реализовать в PQ?
Страницы: 1
Наверх