[英]how to count distinct values in excel for a matrix form
我已经看过是否有人问过这个问题,但找不到确切的答案。
我一直在尝试计算不同的值。 我尝试了 sumproduct、sum(1/countif) 等,到目前为止我只得到一个 div 错误或 0。
基本上,我有两列:Campaign_no 和 customer_id。 我需要的是计算每个活动的唯一客户,并计算同时出现在活动中的唯一客户,有点像矩阵。
表格如下:
活动编号 | 客户编号 |
---|---|
一种 | 1个 |
一种 | 2个 |
一种 | 2个 |
乙 | 1个 |
乙 | 4个 |
乙 | 5个 |
乙 | 9 |
C | 4个 |
C | 5个 |
C | 6个 |
C | 7 |
我需要的是:
活动 | 一种 | 乙 | C |
---|---|---|---|
一种 | 2个 | 1个 | 0 |
乙 | 1个 | 4个 | 2个 |
C | 0 | 2个 | 4个 |
如您所见,活动 A 有 2 个唯一客户,因此 AA 单元格为 2。活动 A 和 B 有一个共同客户,因此 AB 单元格为 1。
活动 A 和 C 没有共同的客户,这个盒子得到 0。活动 B 和 C 有 4 个独立的客户,但他们有两个共同的客户,所以 BC 盒子有 2(如果这些客户是相同的,它本来是1).
有没有 vba 或 PT 的计算方法? 我正在使用 Excel 2017。非常感谢。
这是一个使用辅助细胞的解决方案。
C2 是=A2&B2
。 将其复制到 C3:C12。
D2 是=IF(ISNA(MATCH(B2,D1:$D$1,0)),B2,"")
。 将其复制到 D3:D12。
E2 是=IF($D2="","",1-ISNA(MATCH(E$1&$D2,$C$2:$C$12,0)))
。 将其复制到 E2:G12。
E15 是=SUMIFS($E$2:$E$12,E2:E12,1)
。 将其复制到 F15:G15。
E16 是=SUMIFS($F$2:$F$12,E2:E12,1)
。 将其复制到 F16:G16。
E17 是=SUMIFS($G$2:$G$12,E2:E12,1)
。 将其复制到 F17:G17。
不使用 Office 2017 中的帮助列 C 或许你可以逃脱。我只有 Office 365,所以我无法正确使用。
您可以尝试以下方法,但它假定数据按照广告系列的字母顺序完全按照示例数据中所示的顺序分类到连续的块中:
=SUMPRODUCT((COUNTIFS($A$2:$A$12,F$1,$B$2:$B$12,INDEX($B$2:$B$12,MATCH($E2,$A$2:$A$12,0)):INDEX($B$2:$B$12,MATCH($E2,$A$2:$A$12,1)))>0)
/COUNTIFS($A$2:$A$12,$E2,$B$2:$B$12,INDEX($B$2:$B$12,MATCH($E2,$A$2:$A$12,0)):INDEX($B$2:$B$12,MATCH($E2,$A$2:$A$12,1))))
这个想法是您使用 countifs 检查活动 A 中的每个客户 ID(例如)以查看它是否存在于活动 B 中。但是一个客户 ID 可能在活动 A 中出现不止一次,因此您仍然需要划分通过对活动 A 中每个客户编号的计数来获得唯一计数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.