SUMPRODUCT函数返回0但数据正常,求助问题排查思路
SUMPRODUCT 结合 INDEX-MATCH 返回0的排查方案
针对你遇到的问题,给你几个具体的排查方向:
检查INDEX-MATCH返回值的文本属性
即使单元格格式设为数值,INDEX-MATCH也可能返回带不可见字符、前后空格的文本型数值。手动相乘时Excel会自动转换为数值,但SUMPRODUCT不会,会直接按0计算。可以用=ISTEXT(你的INDEX-MATCH公式)验证,解决方法是用--强制转换:SUMPRODUCT(--(INDEX(D:D,MATCH(条件, 匹配列, 0))), --(INDEX(H:H,MATCH(条件, 匹配列, 0))))确认数组维度是否一致
SUMPRODUCT要求参与运算的两个数组行数、列数完全一致。比如你手动计算的是J2:J17(16行),但INDEX-MATCH返回的其中一个数组长度不对,就会导致对应位置相乘后求和为0。可以用ROWS(你的INDEX-MATCH结果)分别查看两个数组的行数是否都是16。排查匹配结果的准确性
检查INDEX-MATCH是否真的匹配到了你手动计算的D2:D17和H2:H17对应行,有没有出现匹配错误导致返回空值或0的情况。比如匹配条件写错,导致部分行匹配失败,返回的空值被SUMPRODUCT当作0处理,最终总和为0。检查公式的数组运算逻辑
如果你的SUMPRODUCT是用单个INDEX-MATCH返回值相乘,那其实只是计算单个乘积,而非数组求和。比如错误写法:SUMPRODUCT(INDEX(D:D,MATCH(XX,A:A,0)), INDEX(H:H,MATCH(XX,A:A,0)))这种写法只会计算一组匹配值的乘积,若匹配错误就会返回0。正确的数组运算应该让MATCH返回数组,比如:
SUMPRODUCT(D2:D17*H2:H17*(MATCH(A2:A17, 匹配范围, 0)>0))
内容的提问来源于stack exchange,提问作者Jere jere
相关产品推荐
相关产品推荐

