这是Mac版的Microsoft Excel。
我正在尝试制作一个营养数据工作表,如屏幕截图所示。想法是获取输入的食物列表(B6:B7),在可用食物列表中查找这些食物(B2:B4),然后从有关可用食物的数据中汇总输入食物的卡路里(C2: C4)。
由于输入的食物列表可以是任意长度,因此我需要一个数组函数。我需要查找输入的每种食物的卡路里值,并对这些值求和。
我的问题是关于这两个功能之间的区别:
={VLOOKUP(B7:B8,B1:C4,2)}
={SUMIF(B2:B4,B7:B8,C2:C4)}
这两个值都返回相同的值,就像您在电子表格中看到的那样。如果将结果放在单个单元格中,它们各自返回100。如果将结果放入2个单元格,它们将返回{100,200}。这就是我所期望的。 VLOOKUP在表中查找B7和B8中的每一个并获取卡路里值(100和200),而SUMIF如果B2:B4与B7和B8中的每一个匹配,则将C2:C4中的值相加,结果为100和200。
当您尝试对这些结果求和时,会出现差异。使用SUMIF结果的SUM或SUMPRODUCT,您将得到300的结果。但是,对VLOOKUP结果进行相同的操作,您将得到100的结果。我可以看到300或100是有意义的。也就是说,如果将SUM或SUMPRODUCT应用于数组,则300是有意义的;而如果将SUM或SUMPRODUCT分别应用于数组的每个元素,并且从不获取总和,则100是有意义的。但是,我不明白为什么将两者应用于VLOOKUP和SUMIF的中间结果时会有所不同。