我目前有这个:
=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))
答案 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中的值。
此致