求助:如何统计指定地点(Six Flags)与型号(4250)下的唯一序列号数量
嘿,我明白你现在的困扰——要在带多重条件的情况下统计唯一序列号,确实比单纯的频率统计要绕一点。之前的SUMPRODUCT+COUNTIF思路是对的,但可能是条件组合的写法出了问题,我给你几个靠谱的解决方案:
方法1:兼容旧版Excel的SUMPRODUCT修正公式
假设你的数据列对应关系是:
- A列:地点(Location)
- B列:型号(Model)
- C列:序列号(Serial Number)
你可以试试这个修正后的公式:
=SUMPRODUCT((A:A="Six Flags")*(B:B=4250)*(C:C<>"")/COUNTIFS(C:C,C:C,A:A,"Six Flags",B:B,4250))
简单解释下逻辑:
(A:A="Six Flags")*(B:B=4250)先精准筛选出符合两个条件的行(C:C<>"")排除掉空的序列号,避免干扰统计- 分母的
COUNTIFS(C:C,C:C,A:A,"Six Flags",B:B,4250)会统计每个符合条件的序列号,在双条件范围内出现的次数 - 最后用SUMPRODUCT把「1/出现次数」累加起来,每个唯一序列号只会贡献1,重复的会被次数抵消,最终得到的就是唯一值数量
方法2:Excel 365/2021 专属的简化写法
如果你用的是支持动态数组的新版本Excel,直接用UNIQUE+FILTER会更直观:
=COUNTA(UNIQUE(FILTER(C:C,(A:A="Six Flags")*(B:B=4250)*(C:C<>""))))
步骤拆解:
FILTER先把符合双条件的所有序列号筛选出来UNIQUE去掉筛选结果里的重复值COUNTA统计剩下的唯一值总数
小提醒
- 尽量不要用整列(比如A:A),换成实际的数据范围(比如A2:A1000),能大幅提升公式运行速度
- 如果序列号里有空格、大小写差异,记得先用
TRIM()或UPPER()统一处理,不然会被误判为不同值
内容的提问来源于stack exchange,提问作者Motu61
相关产品推荐
相关产品推荐

