使用 INDEX 中的数组获取所有匹配项

使用 INDEX 中的数组获取所有匹配项
Table 1
FRUIT     PRICE
Apple     10
Banana    15 
Mango     20
Pineapple 5

是否有可能做类似的事情:

SUMIF(Table1[Fruit], INDEX(Table1[Fruit],{1,2}), Table1[Price])

为了把水果 1 和 2 的价格加起来?本例中总计 25

答案1

在 sSpill 函数的世界中,您的公式将为“{}”子句中的每个值水平生成一个数组或单元格。

不是在那个世界吗?那么不执行 CSE 将会看到它只获得希望的单元格集合中第一个单元格的值,而不是所有单元格的值。

无论哪种方式,都不是你想要的。

您可以通过用“包装”公式来获得所需的结果SUM()。我知道,您正在使用SUMIF()...为什么它不求和?好吧,它是,但只是公式中的第一组回报,因此生成的 Spill 数组中的每个单元格都会被求和...全部单独求和...用包装它将在将SUM()这些单独的回报分离到单独的单元格之前对这些单独的回报求和,因此您有一个带有总和的单元格。

另一种方法是意识到你根本不关心水果,只关心它们所在的行,甚至不直接关心这些行,只是将其作为识别要求和的行的一种方式。换句话说,为什么要费心处理与 A 列有关的事情?只需INDEX()在 a 内 使用SUM()

=SUM(INDEX(B1:B4,{1,2,4}))

将返回 30 (10+15+5)。无需过于复杂。

如果一个人实际上使用与水果名称相关的内容来生成“{}”部分,则仍然可以在上述公式中使用该列。否则,很难理解为什么要费心去做这件事……

相关内容