如何修改COUNTIFS公式避免重复计数符合条件的单元格?
解决Excel重复计数问题:仅统计符合任一条件的唯一行
原公式通过多个COUNTIFS相加,统计满足以下条件的行:
Sheet1!P2:P256=0Sheet1!C2:C256=3- 同时满足
J2:J256<M25、K2:K256<N25、L2:L256<O25、M2:M256<P25中的任意一个
但该方式会重复计数同时满足多个列条件的行,以下是两种修正方案:
方案1:兼容所有Excel版本(SUMPRODUCT函数)
使用SUMPRODUCT结合逻辑判断,确保每行仅被统计一次:
=SUMPRODUCT(--(Sheet1!P2:P256=0), --(Sheet1!C2:C256=3), --((Sheet1!J2:J256<M25)+(Sheet1!K2:K256<N25)+(Sheet1!L2:L256<O25)+(Sheet1!M2:M256<P25)>0))
公式说明:
(Sheet1!J2:J256<M25)+(Sheet1!K2:K256<N25)+(Sheet1!L2:L256<O25)+(Sheet1!M2:M256<P25)>0:判断该行是否满足至少一个列条件,满足则返回TRUE--(...):将逻辑值转换为数值1或0,用于后续求和SUMPRODUCT:对同时满足P=0、C=3且至少一个列条件的行进行求和,每行仅计1次
方案2:适用于Excel 365/2021及以上(数组公式)
利用Excel动态数组特性,直接通过数组逻辑判断求和:
=SUM(--((Sheet1!P2:P256=0)*(Sheet1!C2:C256=3)*((Sheet1!J2:J256<M25)+(Sheet1!K2:K256<N25)+(Sheet1!L2:L256<O25)+(Sheet1!M2:M256<P25)>0)))
公式说明:
- 核心逻辑与方案1一致,通过
*(条件)组合基础条件,+(条件)>0判断任一列条件是否满足 - 无需按
Ctrl+Shift+Enter,直接回车即可生效,Excel会自动处理数组计算
内容的提问来源于stack exchange,提问作者bigbomb
相关产品推荐
相关产品推荐

