计算多列的唯一组合数

计算多列的唯一组合数

我有一个 Excel 文件,包含 5 列 272,000 行数据。数据如下所示:

A   B   C   D   E
1   1   1   1   1
1   0   1   0   1
1   1   1   1   1
1   0   0   0   0
1   0   1   0   1
1   0   1   1   1
1   1   1   1   1
1   0   1   0   1
1   0   1   1   1
1   1   1   1   1
1   1   1   0   1
1   0   1   1   1
1   0   0   1   1
0   1   0   0   0
1   0   0   0   1
0   0   0   0   1
1   1   1   1   1
1   1   1   0   1
0   1   0   0   0
1   0   0   0   0
1   1   1   0   1
1   1   1   1   0
1   0   0   0   0
1   1   1   0   1
0   0   0   0   1
1   0   0   0   1
1   1   1   1   1
1   1   0   1   1
1   1   1   1   1

我知道独特的组合是什么:

A
AE
AB
BE
B
AC
ABC
BC
C
ACE
ABCE
BCE
CE
ACDE
ABCDE
BCDE
CDE
ADE
ABDE
BDE
DE
AD
ABD
BD
D

如何计算每个组合出现的次数?我尝试使用嵌套的“IF”函数以及 count if 函数。在这种情况下我该怎么办。

答案1

您可以通过多种方式来回答这个问题,我认为获取组合的一个简单方法是:

备份当前数据以防万一,因为所有 A、B、C、D 等始终位于同一列,因此您基本上可以将所有这些数字转换为字母(如果为 0,则为“”)。然后有一个单元格基本上将所有字母串加在一起,这样您就有了组合。

如果可以的话,使用 COUNTIF 函数来得到总数。

因此,要将数字转换为字母,请对每个字母执行此操作,使用 IF 函数,例如:=IF(A1=1,"A","")

当您的列是字母时,您可以使用 =CONCATENATE 来获取组合,如果您的字母数据是列 A、B、C、D:=CONCATENATE(A1,B1,C1,D1)

最后,使用 COUNTIF 函数“计算”我们使用 CONCATENATE 函数创建的范围内存在的唯一组合。

答案2

我已经想出了一个办法。请在文件链接这里。
步骤 1:我实际上做的是计算出 32 种可能的组合。
步骤 2:将二进制连接成一个字符串。
步骤 3:将二进制转换为十六进制 - 仅供参考。如果您想知道在输入这些 1 和 0 时所做的所有组合都是唯一的。
步骤 4:命名每个二进制字符串 - 就像您在上面的“符号”列中的注释中所述的那样。
步骤 5:实现数据透视表以根据需要计算唯一值。

快速查看表格

您需要做的就是从“步骤 3”开始。对于符号,请VLOOKUP从我的文件中执行并按原样分配符号。
我希望这可以解决这个问题。

相关内容