F&B Industry - Как преобразовать 1 меню в его компоненты с помощью Excel?

F&B Industry - Как преобразовать 1 меню в его компоненты с помощью Excel?

Я работаю в сфере общественного питания, и у меня возникла проблема, с которой не может справиться программное обеспечение моей компании, поэтому я пытаюсь решить ее в 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, и я умножаю его на его компоненты

Проблема с моей работой:

  1. У меня так много рецептов (около 14 тыс. строк), что расчет формулы, которую я попробовал, занимает слишком много времени (около 10 с на вводимые данные).

  2. Если я положу свою базу данных в качестве рабочего листа, то в результате будет получено очень много нулевых строк (потому что в среднем ежедневные данные содержат всего 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)

Вы можете изменить рецепт и/или количество, и список должен обновиться автоматически.

введите описание изображения здесь

Связанный контент