Excel分组统计唯一类别报错:空白行致SUMPRODUCT公式异常求助
解决Excel按邮箱统计唯一非空分类数量的问题
问题分析
你需要按email分组,统计每个邮箱对应的唯一非空category数量,且每行的sum_category列都显示该邮箱对应的统计结果。之前的两个公式存在以下问题:
- 第一个公式出现
#DIV/0!错误:当category列为空时,公式中COUNTIFS的分母会出现无效计算(空值匹配导致的0分母场景); - 第二个公式会将空白
category计入统计:不符合你预期的统计逻辑(如trent.li@abc.com的空白分类不应被计数)。
解决方案
兼容所有Excel版本的公式
使用SUMPRODUCT结合IFERROR处理空值情况,确保只统计非空的唯一分类:
=SUMPRODUCT(IFERROR((A$2:A$100=A2)*(C$2:C$100<>"")/COUNTIFS(A$2:A$100,A2,C$2:C$100,C$2:C$100,C$2:C$100<>""),0))
公式说明:
(A$2:A$100=A2):匹配当前行的邮箱;(C$2:C$100<>""):仅筛选非空的分类;COUNTIFS(A$2:A$100,A2,C$2:C$100,C$2:C$100,C$2:C$100<>""):统计当前邮箱下,与当前行非空分类重复的次数;IFERROR(...,0):处理空分类行的无效计算,避免#DIV/0!错误;SUMPRODUCT:对每个非空分类行计算1/重复次数,求和后得到唯一非空分类的数量。
Excel 365/2021简洁版公式
如果你使用的是Excel 365或2021版本,可使用更直观的动态数组公式:
=COUNT(UNIQUE(FILTER(C$2:C$100,(A$2:A$100=A2)*(C$2:C$100<>""))))
公式说明:
FILTER(C$2:C$100,(A$2:A$100=A2)*(C$2:C$100<>"")):筛选出当前邮箱对应的所有非空分类;UNIQUE:对筛选结果去重,得到唯一的非空分类列表;COUNT:统计去重后的分类数量。
验证结果
将上述公式输入sum_category列的第一行(如D2),下拉填充后,即可得到你预期的结果:
trent.li@abc.com的sum_category为1(仅统计action);jim.camrn@abc.com的sum_category为2(统计romance和action);- 空分类行的
sum_category也会显示对应邮箱的唯一非空分类数量。
内容的提问来源于stack exchange,提问作者wjie08
相关产品推荐
相关产品推荐

