如何用Excel COUNTIFS实现基于两列求和结果的条件计数?
解决Excel中按多条件(含列求和)统计记录数的问题
这问题我太熟了!你用COUNTIFS的时候直接写SUM(B:C)肯定行不通——因为COUNTIFS要求每个条件都对应一个同尺寸的单元格区域,而SUM(B:C)是单个计算值,没法和每一行的记录逐一匹配判断。下面给你两种靠谱的解决方法:
方法1:通用型(适用于所有Excel版本)——用SUMPRODUCT
这是最稳妥的方案,不管你用的是老版本还是新Excel都能跑:
=SUMPRODUCT((A:A="Type A")*(B:B+C:C=3))
逻辑解释:
(A:A="Type A"):逐行判断A列是否等于"Type A",符合返回TRUE(转成数值是1),不符合返回FALSE(转成数值是0)(B:B+C:C=3):逐行计算B、C列的和,判断是否等于3,同样返回1或0- 两个数组相乘后,只有当两个条件都满足时结果才是1,最后
SUMPRODUCT把所有1加起来,就是符合条件的记录总数
小提示:如果你的数据量特别大,用具体的单元格区域(比如
A2:A1000)代替整列A:A,能加快计算速度;但如果列长度经常变,用整列也完全没问题。
方法2:Excel 365/2021专属——用COUNT+FILTER
如果你用的是支持动态数组的Excel版本,这个写法更直观易懂:
=COUNT(FILTER(A:A,(A:A="Type A")*(B:B+C:C=3),""))
逻辑解释:
FILTER(A:A, 条件, ""):根据筛选条件(A列是Type A且B+C=3)返回符合条件的A列记录,没有匹配结果时返回空字符串避免报错COUNT():统计筛选结果里的非空单元格数量,也就是符合条件的记录数
为啥你的原写法不对?
再啰嗦一句:COUNTIFS的语法规则是COUNTIFS(区域1, 条件1, 区域2, 条件2,...),每个条件对应的必须是和第一个区域行数相同的单元格区域。你写的SUM(B:C)是一个全局求和的单个值,不是逐行的区域,Excel根本没法对应每一行去判断,所以肯定会出错啦~
内容的提问来源于stack exchange,提问作者Tim L.
相关产品推荐
相关产品推荐

