EXCEL:计算唯一值的组合

时间:2019-01-24 13:09:05

标签: excel combinations

我正在尝试在excel中计算以下内容: 我有许多X的唯一值(例如4),每个值在数据集中出现两次(以随机顺序)。我想计算X的每个值在第二列Y上的每个值组合(无论顺序如何)的数量。

示例(按顺序排列):

X Y

1 A
1 D
2 A
2 C
3 B
3 C
4 A
4 D

作为输出,我需要:

n A,D 2
n A,C 1
n B,C 1
n B,D 0

(假设所有其他组合都不存在。)

是否可以不重新排列数据?我不介意输入4个公式(每种可能的组合)。 我的出发点与此类似:excel count unique combinations of columns,但我不太清楚,而且我知道对excel或编码几乎没有什么感觉……

3 个答案:

答案 0 :(得分:1)

要获取数据不正确时的对数,第一个需要通过X获取对。创建X的唯一列表并使用以下公式:

=CHAR(AGGREGATE(15,6,CODE($B$2:$B$9)/($A$2:$A$9=D2),1))&","&CHAR(AGGREGATE(15,6,CODE($B$2:$B$9)/($A$2:$A$9=D2),2))

请注意,只有当Y是一个像您的数据一样的字符时,此选项才起作用。

enter image description here

然后创建该输出的唯一列表并使用标准COUNTIF:

=COUNTIF(E:E,G2)

enter image description here

或者您可以在第一批帮助器列上使用数据透视表来获得相同的数据,而无需获取唯一的配对。

答案 1 :(得分:0)

如果使用帮助器列,则可以将数据合并为可以计数的内容。在列C中使用公式=IF(A2<>A1,B2,C1&","&B2)。因此您的数据将变为:

X Y 
1 A A
1 D A,D
2 A A
2 C A,C
3 B B
3 C B,C
4 A A
4 D A,D

然后是对组合进行计数的问题。这是我的示例的快照:

enter image description here

答案 2 :(得分:0)

您可以为此目的使用MMULT函数(例如,您可以使用Alt + Enter插入换行符,但不必这样做,如果您在同一行上编写也可以使用换行符):

=SUMPRODUCT(
  --($B$2:$B$19=  LEFT($D2,FIND(",",$D2)-1)  ),
  MMULT(
    --($A$2:$A$19=TRANSPOSE($A$2:$A$19)),
    --($B$2:$B$19=  MID($D2,FIND(",",$D2)+1,LEN($D2))  )))

您必须将其作为数组公式输入(键入后,按Ctrl + Shift + Enter,而不仅仅是Enter;您将在括号内看到该公式,例如:{= ...})。

以下是屏幕截图,显示了公式中的范围是什么意思: Excel screenshot