Excel数组公式求和求助:需结合IFERROR忽略错误值
搞定带错误值的条件求和问题
我来帮你解决这个数组公式的报错问题!你的原始公式在遇到Cost列的错误值时失效,核心原因是错误值会直接传递到SUM函数里,导致整个公式返回错误。我们只需要把IFERROR嵌套到正确的位置,就能让公式始终正常工作。
旧版Excel(需要按Ctrl+Shift+Enter确认数组)
如果你用的是旧版Excel(比如2019及更早),需要使用数组公式,正确写法是:
=SUM(IF(Waste[Product]=$E$3,IFERROR(Waste[Cost],0),0))
⚠️ 输入完公式后一定要按Ctrl+Shift+Enter完成数组输入,Excel会自动给公式加上大括号{}(千万别手动加括号,会导致公式失效)。
为啥这么写?
- 先通过
IFERROR(Waste[Cost],0)把Cost列里所有错误值(比如#N/A、#VALUE!)都替换成0,正常数值保持不变; - 再用
IF(Waste[Product]=$E$3, ... ,0)判断每行的产品名称是否匹配E3,匹配就用处理后的Cost值,不匹配就用0; - 最后SUM把所有符合条件的数值加起来,此时已经没有错误值干扰,公式就能稳定返回结果了。
新版Excel(Excel 365/2021及以后,无需数组确认)
如果你的Excel支持动态数组功能,那写法可以更简洁,不用再按Ctrl+Shift+Enter:
方法1:用FILTER+IFERROR
=SUM(IFERROR(FILTER(Waste[Cost],Waste[Product]=$E$3),0))
FILTER会直接筛选出所有匹配E3的Cost值,IFERROR把筛选结果里的错误值转成0;如果没有匹配项,FILTER返回的错误也会被转成0,SUM结果就是0,完美兼容各种情况。
方法2:用SUMIFS+IFERROR
=SUMIFS(IFERROR(Waste[Cost],0),Waste[Product],$E$3)
把处理好错误值的Cost列作为求和区域,SUMIFS会自动匹配产品名称等于E3的行,直接完成求和,写法更贴近日常使用的函数逻辑。
内容的提问来源于stack exchange,提问作者TomRGarr
相关产品推荐
相关产品推荐

