求支持双范围双条件(含日期)的唯一值计数Excel公式
带多条件(含日期范围)的唯一值计数方案
一、兼容全Excel版本的SUMPRODUCT方案
你之前的公式存在语法错误,基础唯一值计数的正确写法是=SUMPRODUCT(1/COUNTIF(统计范围, 统计范围))。要添加日期范围和其他条件,可通过COUNTIFS结合条件判断实现:
假设:
- 需统计唯一值的目标范围为
A:A - 第一个条件范围为
B:B,条件为"完成" - 日期范围为
C:C,需满足>=2024/1/1且<=2024/12/31
公式示例:
=SUMPRODUCT(IFERROR((B:B="完成")*(C:C>=DATE(2024,1,1))*(C:C<=DATE(2024,12,31))/COUNTIFS(A:A,A:A,B:B,"完成",C:C,">="&DATE(2024,1,1),C:C,"<="&DATE(2024,12,31)),0))
逻辑说明:
- 前半部分
(B:B="完成")*(C:C>=...)是多条件筛选,仅保留符合所有条件的行 COUNTIFS统计每个符合条件的唯一值在目标范围中的出现次数1/次数将重复值转为分数,求和后得到唯一值的数量IFERROR避免因无符合条件值导致的除以0错误
二、Excel 365/2021+的动态数组简化方案
如果你的Excel支持动态数组函数,可使用更简洁的组合公式:
=COUNTA(UNIQUE(FILTER(A:A,(B:B="完成")*(C:C>=DATE(2024,1,1))*(C:C<=DATE(2024,12,31)))))
逻辑说明:
FILTER先筛选出同时满足所有条件的目标范围值UNIQUE对筛选结果去重COUNTA统计去重后的非空单元格数量,即唯一值个数
三、实用注意事项
- 尽量使用具体的单元格范围(如
A2:A1000)代替整列(A:A),提升公式计算效率 - 日期条件可直接引用单元格,比如将起始日期放在
E1,结束日期放在E2,公式中替换为C:C>=E1和C:C<=E2
内容的提问来源于stack exchange,提问作者Michael James
相关产品推荐
相关产品推荐

