如何在Google表格空筛选结果时返回0?
解决SUM(FILTER)无匹配时的#N/B错误问题
我完全懂你的烦恼——公式逻辑明明没问题,可一旦没有符合条件的销售数据,就跳出荷兰语的#N/B错误,确实挺闹心的。这里有两个实用的解决办法:
方案1:用IFERROR包裹原公式
最直接的修复方式就是给你的现有公式套一层IFERROR函数,让它在无匹配结果时返回0(或者你需要的其他默认值)。修改后的公式如下:
=IFERROR(SUM(FILTER('SALES'!X:X; YEAR('SALES'!A:A)=2018; MONTH('SALES'!A:A)=4; 'SALES'!AF:AF=1)); 0)
简单来说,IFERROR会检查第一个参数的计算结果:如果是错误值(比如这里的#N/B),就返回第二个参数设定的内容(这里填0,代表无符合条件的销售额);如果计算正常,就返回SUM的结果。
方案2:改用SUMIFS函数(更适配多条件求和场景)
其实对于这种多条件求和的需求,SUMIFS本身就默认在无匹配时返回0,不需要额外处理错误。而且用日期范围代替YEAR/MONTH函数,计算效率还更高。公式可以改成这样:
=SUMIFS('SALES'!X:X; 'SALES'!A:A; ">="&DATE(2018;4;1); 'SALES'!A:A; "<="&DATE(2018;4;30); 'SALES'!AF:AF; 1)
这里用DATE(2018;4;1)和DATE(2018;4;30)精准锁定2018年4月的日期区间,比逐个单元格计算YEAR和MONTH要高效得多,Excel能利用单元格索引更快完成计算。
补充:为什么会出现#N/B错误?
当FILTER函数找不到满足所有条件的行时,它会返回荷兰语的#N/B错误(对应英语的#N/A,意思是“未找到匹配项”),而SUM函数无法处理错误值,所以就直接把这个错误展示出来了。上面的两种方法都能完美规避这个问题。
内容的提问来源于stack exchange,提问作者Leendert
相关产品推荐
相关产品推荐

