求助SUMPRODUCT双条件求和:匹配列C前缀与列E指定值
解决SUMPRODUCT多条件求和问题
你遇到的问题其实是因为AND函数在数组运算中不会返回对应位置的数组结果,它只会输出单个布尔值,所以没法和SUMPRODUCT配合处理多条件的批量判断。咱们直接用数组相乘的方式来实现多条件筛选就可以了,这也是SUMPRODUCT处理多条件求和的标准写法。
修正后的公式
=SUMPRODUCT(--ISNUMBER(SEARCH("SIGN-";'1. Data'!$C:$C));--('1. Data'!$E:$E="2017-12");'1. Data'!D:D)
公式拆解说明
--ISNUMBER(SEARCH("SIGN-";'1. Data'!$C:$C)):和你原来的逻辑一致,判断C列单元格是否包含"SIGN-"文本,--的作用是把布尔值(TRUE/FALSE)转换成1(符合条件)或0(不符合条件)的数值。--('1. Data'!$E:$E="2017-12"):新增的筛选条件,判断E列单元格是否等于"2017-12",同样用--将布尔结果转成数值。- SUMPRODUCT会自动将这两个条件数组的对应位置相乘(只有两个条件都满足时,乘积才为1,否则为0),再和D列的数值数组相乘,最后求和,就能得到同时满足两个条件的D列数值总和。
另外补充个精准匹配的小技巧:如果你的需求是C列以"SIGN-"开头(而非包含),可以把SEARCH换成LEFT函数,这样判断更严格:
=SUMPRODUCT(--(LEFT('1. Data'!$C:$C;5)="SIGN-");--('1. Data'!$E:$E="2017-12");'1. Data'!D:D)
这里LEFT('1. Data'!$C:$C;5)提取C列单元格的前5个字符,判断是否等于"SIGN-",完美匹配开头的场景。
内容的提问来源于stack exchange,提问作者norden22
相关产品推荐
相关产品推荐

