
Я работаю в сфере общественного питания, и у меня возникла проблема, с которой не может справиться программное обеспечение моей компании, поэтому я пытаюсь решить ее в Excel.
У меня есть меню, в котором много компонентов. Поэтому я пытаюсь преобразовать меню в его компоненты (прикрепленное изображение)
У меня есть только данные: Куриный суп 3 шт.
Моя база данных:
Column A | Column B | Column C
Chicken Soup | Water | 100 ml
Chicken Soup | Chicken Broth | 10 ml
Chicken Soup | Chicken Meat | 50 gr
И я хочу, чтобы результат был:
Water 300 ml
Chicken Broth 30 ml
Chicken Meat 150 gr
Что я пробовал:
я кладувся моя база данныхна 1 листе и используйте SUMIFS * (кол-во компонентов). SUMIFS только для суммирования всех данных, соответствующих столбцу A, и я умножаю его на его компоненты
Проблема с моей работой:
У меня так много рецептов (около 14 тыс. строк), что расчет формулы, которую я попробовал, занимает слишком много времени (около 10 с на вводимые данные).
Если я положу свою базу данных в качестве рабочего листа, то в результате будет получено очень много нулевых строк (потому что в среднем ежедневные данные содержат всего 5-10 элементов), то есть мне придется снова сортировать результат, чтобы получить фактические данные.
Я также пробовал использовать сводную таблицу, но сводная таблица покажет все данные, включая НУЛЕВУЮ сумму (но мне нужны только данные, которые имеют значение).
решение1
Сначала настройте столбец, который вытягивает ингредиенты из списка рецептов. Он просматривает все меню и находит все ингредиенты, связанные с этим пунктом.
=IFERROR(INDEX($B$1:$B$9,SMALL(IF($A$1:$A$9=F$1,ROW($A$1:$A$9),9E+99),ROW($B1)-ROW($B$1)+1)),"")
(обязательно нажмите, ctr + Shift + Enter
так как это в формуле массива
Затем используйте сопоставление индекса, чтобы найти количество:
=INDEX($C$1:$C$6,MATCH(F2,$B$1:$B$6,0))*G$1&INDEX($B$1:$D$6,MATCH(F2,$B$1:$B$6,0),3)
Вы можете изменить рецепт и/или количество, и список должен обновиться автоматически.