【发布时间】:2017-07-16 21:21:32
【问题描述】:
我正在制作一个可以帮助我制定膳食计划的 Excel 表格。目前,我的数据存储方式如下所示:
**Monday**
Breakfast Bagel 1 Cream Cheese 1
Lunch Spinach 1 Eggs 4 Cream Cheese 1
Dinner Pork 1 Eggs 2
**Tuesday**
Breakfast Cereal 2 Milk 1 Eggs 3
Lunch Bagel 1 Butter 1
Dinner Eggs 2
当前输出:
Ingredients Needed:
Eggs 2
Bagel 2
Spinach 1
Pork 1
Cereal 2
Milk 0
Butter 0
Cream Cheese 0
其中的数字代表我需要购买的每种食材的份数。
我面临的问题是我目前的公式:
=INDEX($C$12:$C$58, SMALL(IF(ISNUMBER(搜索($B$60, $B$12:$B$58)), MATCH(ROW($B$12:$B$58), ROW ($B$12:$B$58))), ROW(B1)))
一次只索引一行。例如,如果我正在搜索一周需要购买多少个鸡蛋,则公式将返回 2 个鸡蛋(因为它只在 B 列中搜索鸡蛋并返回 C 列)。
是否有一种解决方法可以让我能够退回我需要购买的全部成分?我意识到我可以单独索引每一列,但是,因为我有很多成分(100+),使用我当前的公式似乎不可行。
非常感谢任何帮助
【问题讨论】:
-
我会将我的数据放在一个表格中。这样您每餐都有一行,每种成分都有一列,这样您只需对列求和即可找到每种成分的总数?也许将其作为输入和输出之间的中间步骤。
标签: excel if-statement