SUMPRODUCT函数通配符失效求助:公式返回0而非预期120
解决SUMPRODUCT中使用通配符匹配的问题
你的公式返回0的核心原因是:SUMPRODUCT里的=是精确匹配,直接写"*"&R4&"*"只会匹配单元格内容完全等于这个带星号的字符串的情况,而不是你预期的「包含R4内容」的模糊匹配。
直接用SEARCH(不区分大小写)或FIND(区分大小写)函数替代原有的通配符匹配逻辑即可,这两个函数支持通配符识别,能返回匹配内容的起始位置,配合ISNUMBER把结果转成布尔值供SUMPRODUCT计算:
不区分大小写的版本(推荐)
=SUMPRODUCT((I4:N28)*(B4:B28=R3)*ISNUMBER(SEARCH(R4,I1:N1)))
区分大小写的版本
=SUMPRODUCT((I4:N28)*(B4:B28=R3)*ISNUMBER(FIND(R4,I1:N1)))
补充说明
- 如果R4为空值,上面的公式会匹配所有列(因为SEARCH空值会返回1),若要避免这种情况,可以额外加个判断:
=SUMPRODUCT((I4:N28)*(B4:B28=R3)*(R4<>"")*ISNUMBER(SEARCH(R4,I1:N1))) - 要是R4本身包含通配符(比如
*或?),SEARCH/FIND会自动识别并按通配规则匹配,和SUMIF的逻辑一致。
内容的提问来源于stack exchange,提问作者Alan Tingey
相关产品推荐
相关产品推荐

