Excel中用COUNTIFS按关联列唯一值统计目标列指定内容数
Excel 按关联列去重后的条件计数方案
要实现统计N列中指定值(如"a")的数量,但关联的M列出现重复值时,同一N值仅计数一次的需求,直接用COUNTIFS无法完成去重逻辑,需要结合SUMPRODUCT与COUNTIFS组合实现:
公式示例
=SUMPRODUCT((N:N="a")/COUNTIFS(M:M,M:M,N:N,"a"))
公式解释
(N:N="a"):判断每行N列是否等于目标值"a",返回布尔值(TRUE/FALSE),运算中自动转换为1/0,仅保留N列符合条件的行。COUNTIFS(M:M,M:M,N:N,"a"):对每一行,统计**M列值与当前行M值相同,且N列值为"a"**的总行数,标记同一M值对应的N="a"的重复次数。(N:N="a")/COUNTIFS(...):将符合条件的行按其M值的重复次数取倒数,比如3行M=1且N="a"的行,每行结果都是1/3,相加后刚好为1,实现去重计数。SUMPRODUCT:对所有行的计算结果求和,最终得到去重后的统计总数。
验证示例
- 当所有N列"a"对应的M列都是1时,公式计算结果为1(所有重复行的倒数和为1)。
- 新增一行M=5、N="a"的条目后,公式会将原重复组的和(1)与新增行的结果(1)相加,最终得到2。
优化建议
为避免整列计算的冗余和空行干扰,建议将公式中的整列范围(如N:N)替换为实际数据区域,比如N2:N100(假设数据从第2行到第100行):
=SUMPRODUCT((N2:N100="a")/COUNTIFS(M2:M100,M2:M100,N2:N100,"a"))
内容的提问来源于stack exchange,提问作者Ryan Hare
相关产品推荐
相关产品推荐

