含非数值数据时,多行列条件SUMPRODUCT公式报错的解决方法
解决插入非数值列后SUMPRODUCT求和报错的问题
问题根源
插入D列后,原公式引用的C3:G8包含非数值数据的D列,SUMPRODUCT执行乘法运算时,文本无法参与数值计算,导致返回#VALUE!错误。
方案1:修改SUMPRODUCT公式,兼容非数值列
在原公式的数值区域部分加入ISNUMBER判断,将非数值单元格转为0,避免运算报错,同时保留原有多条件逻辑:
=SUMPRODUCT(IF(I3="",1,(A3:A8=I3))*IF(I4="",1,(B3:B8=I4))*IF(I1="",1,(C1:G1=I1))*IF(I2="",1,(C2:G2=I2))*IF(ISNUMBER(C3:G8),C3:G8,0))
- 注意:Excel 2019及更早版本需按
Ctrl+Shift+Enter作为数组公式输入;Excel 365/2021直接回车即可。
方案2:使用动态数组函数(Excel 365/2021专属)
利用FILTER函数分层筛选符合行、列条件的数据,再求和,逻辑更直观,且自动排除不符合条件的列(包括非数值列,只要列条件不匹配它):
=SUM(IFERROR(FILTER(FILTER(C3:G8, IF(I3="", TRUE, A3:A8=I3)*IF(I4="", TRUE, B3:B8=I4)), IF(I1="", TRUE, C1:G1=I1)*IF(I2="", TRUE, C2:G2=I2)), 0))
- 内层
FILTER筛选符合行条件(A列匹配I3、B列匹配I4)的行; - 外层
FILTER筛选符合列条件(第1行匹配I1、第2行匹配I2)的列; IFERROR确保即使筛选结果包含非数值,也转为0避免求和报错;- 最后用
SUM计算筛选后数值的总和。
内容的提问来源于stack exchange,提问作者Michi
相关产品推荐
相关产品推荐

