Excel按出租车ID分组统计不重复客户组数量的公式求解
按出租车ID统计对应不重复客户组数量的Excel公式
核心需求
- A列
File Number为档案编号,同一客户组/家庭共用唯一ID,会因组内多客户重复出现多行 - B列
Taxi ID为出租车唯一ID,同一台出租车可承载多个客户组 - 目标:统计每台出租车对应的不重复客户组总数量,排除同一档案编号的重复行干扰
注意:公式中的数据范围
A$2:A$1003、B$2:B$1003请根据实际表格的数据行数调整,不要包含表头行
可用公式
Excel 365/2021及以上支持动态数组的版本
在C2单元格输入以下公式,下拉填充即可:
=COUNT(UNIQUE(FILTER(A$2:A$1003,B$2:B$1003=B2)))
公式逻辑:
FILTER(A$2:A$1003,B$2:B$1003=B2):筛选出所有和当前行出租车ID匹配的档案编号UNIQUE():对筛选出的档案编号去重,每个客户组仅保留1个唯一值COUNT():统计去重后的档案编号数量,即为该出租车对应的客户组总数
全版本兼容(支持Excel 2019及更早无动态数组的版本)
在C2单元格输入以下公式,直接回车后下拉填充即可(不需要数组三键):
=SUMPRODUCT((B$2:B$1003=B2)/COUNTIFS(A$2:A$1003,A$2:A$1003,B$2:B$1003,B$2:B$1003))
公式逻辑:
(B$2:B$1003=B2):逐行判断出租车ID是否匹配当前行,匹配返回1、不匹配返回0COUNTIFS(A$2:A$1003,A$2:A$1003,B$2:B$1003,B$2:B$1003):逐行统计当前「档案编号+出租车ID」组合的总出现次数,同一客户组的所有重复行返回值相同(比如5人家庭对应5行,每行返回值都是5)- 用匹配判断的结果除以对应组合的出现次数,同一客户组的n行每行贡献1/n,求和后刚好计为1,实现重复档案编号不重复计数的效果
SUMPRODUCT()对所有计算值求和,得到当前出租车对应的不重复客户组总数
原公式问题说明
你之前使用的=COUNTIFS(A$2:A$1003,"<>"&A2,B$2:B$1003,B2)+1仅排除了当前行的档案编号,没有排除同组其他行的重复档案编号,多人员家庭的重复行会被重复计数,无法得到正确结果。
示例数据验证
用提供的CSV测试数据计算:
- 出租车
T344718对应仅1个唯一档案编号,返回值为1,符合预期 - 出租车
T444718对应3个唯一档案编号,返回值为3,符合预期
内容的提问来源于stack exchange,提问作者Hugo Hismans
相关产品推荐
相关产品推荐

