EXCEL:计算唯一值的组合

Posted

技术标签:

【中文标题】EXCEL:计算唯一值的组合【英文标题】:EXCEL: count combinations for unique values 【发布时间】:2019-06-18 05:38:26 【问题描述】:

我正在尝试在 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 或编码的感觉几乎没有......

【问题讨论】:

在输出中,您是否已经有了想要计算的组合?还是您希望公式也能枚举组合? 在输出中,A,D 和 D,A 的组合是一样的吗? 只有四种兴趣组合是可能的;和 A,D = D,A。 【参考方案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 与您的数据一样是一个字符时才有效。

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

=COUNTIF(E:E,G2)

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

【讨论】:

【参考方案2】:

如果您使用辅助列,您可以将数据组合成可以计数的数据。使用 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

然后是计算组合的问题。这是我的示例的快照:

【讨论】:

【参考方案3】:

您可以为此使用 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:计算唯一值的组合的主要内容,如果未能解决你的问题,请参考以下文章

循环遍历数据框:计算每个唯一变量的值的每个成对组合。

Excel:如何为唯一组合分配值/检查大型数据集中的唯一组合

pyspark 生成唯一值的所有组合

在excel中查找两列的组合,一列中有一个条件

python 从列表中生成唯一值的组合

Excel 公式4个数相加等于固定值的所有组合