Excel整列条件式去重计数问题(非数据透视表方案)
Excel去重计数问题
数据说明
- A列:CASE ID
- B列:Fruit
需求
- 统计“Apple”对应的不同CASE ID数量
- 不使用数据透视表,实现整列范围内符合指定条件的去重计数
已尝试的无效方案(整列引用时失效)
方案1:
{SUM(((B2:B13="Apple"))/COUNTIFS(B2:B13,B2:B13,A2:A13,A2:A13))}
方案2:
{SUM(IF(B2:B13="Apple",1/(COUNTIFS(B2:B13,"Apple",A2:A13,A2:A13)),0))}
解决方案
适用于Excel 365/2021及以上版本(动态数组支持)
直接使用以下公式,无需数组输入,支持整列引用:
=COUNTA(UNIQUE(FILTER(A:A,B:B="Apple")))
原理:用FILTER筛选出B列为"Apple"的所有A列数据,UNIQUE对筛选结果去重,COUNTA统计非空的唯一值数量,自动忽略整列中的空行。
适用于旧版Excel(无动态数组)
使用数组公式,输入后按Ctrl+Shift+Enter确认,同时排除空单元格避免错误:
{=SUM(IF(B:B="Apple",1/COUNTIFS(B:B,"Apple",A:A,A:A,B:B<>"",A:A<>""),0))}
原理:通过B:B<>""和A:A<>""排除整列中的空行,避免COUNTIFS统计空值导致的除以0错误,再通过数组运算统计符合条件的唯一CASE ID数量。
失效原因说明
之前的方案仅引用固定区域(B2:B13、A2:A13)时有效,但改为整列引用时,会包含大量空单元格,COUNTIFS会将空的B列和A列单元格纳入统计,导致出现1/0的错误,最终公式返回异常结果。
内容的提问来源于stack exchange,提问作者E L
相关产品推荐
相关产品推荐

