SUMIF的SUMPRODUCT

时间:2014-07-30 17:18:58

标签: excel excel-formula excel-2010

我目前有这个:

=SUMPRODUCT(SUMIF(A:A;Index(List;;1);B:B))

列A是名称列表,列B是每个名称的值列表。命名范围列表有2列,第一列是名称,第二列是布尔值(0或1)。

我的公式实际上用于返回A列中相应名称的每个B列值的总和IF,该名称位于我的命名范围List的第一列中。它工作正常。

但是,我想过滤它只包含List中布尔值等于1的名称(即Index(List;;2) = 1

这怎么可能?

这是我尝试的但是它给了我一个#REF!错误:

=SUMPRODUCT(SUMIF(A:A;Index(List;;1)*Index(List;;2);B:B))

2 个答案:

答案 0 :(得分:3)

可能最好切换到数组公式**

=SUM(SUMIF(A:A,IF(INDEX(List,,2),INDEX(List,,1)),B:B))

**数组公式的输入方式与“标准”公式的输入方式不同。您只需按住CTRL和SHIFT键,然后按ENTER键,而不是按ENTER键。如果你已经正确地完成了它,你会注意到Excel在公式周围放置了大括号{}(虽然不要尝试自己手动插入这些)。

答案 1 :(得分:1)

由于您的命名范围包含不连续范围,因此在索引时,您需要包含INDEX的第4个参数(area_num)以澄清哪个范围($ B $ 2:$ B $ 100或$ L $ 2:$ W $ 100 )你想参考,例如:

=INDEX(List,60,1,**2**)

将返回单元格L61中的值。

此致