如何在Excel中找到两个变量的非唯一组合?

时间:2016-05-06 12:29:21

标签: excel

我在Excel中有两列标识单个记录(ID和代码)。其中一些可能会多次出现。对于某些记录,代码可能会丢失。并且一些ID属于多个代码。我需要找到与给定代码具有非唯一关联的这些ID,并显示它们是什么。

最小例子:

ID    code
K151  ABC
K152  BCD
K153  EFG
K154  
K151  ABC
K154  HDG
K153  EFF
K151  ABC
K153  EFG

所以我需要一个列表(可能包含出现次数):

ID    code  freq
153   EFG   2 
153   EFF   1
154         1
154   HDG   1

使用数据透视表执行类似操作相当容易,但请注意,例如K151 - ABC发生3次,不应该列出,只有那些具有多个代码的ID。此外,在数据透视表中,代码在ID下折叠为父类别,并且它们不会并排显示。

如果在新变量中的原始表中标记了非唯一编码的ID,那么也可以使用该标志手动过滤这些记录。

ID    code   flag
K151  ABC    0
K152  BCD    0
K153  EFG    1
...
K153  EFF    1
...

我需要在Excel(2013)中找到一个解决方案,而不是VBA或其他任何东西,理想情况下该解决方案也应与LibreOffice Calc兼容。

2 个答案:

答案 0 :(得分:1)

标记将很简单。

enter image description here

C2向下的公式:

=COUNTIF($A:$A,"="&A2)<>COUNTIFS($A:$A,"="&A2,$B:$B,"="&B2)

D2向下的公式:

=IF(C2,COUNTIFS($A:$A,"="&A2,$B:$B,"="&B2),0)

对于OpenOffice,我们需要SUMPRODUCT,因为COUNTIF如果为空则不会计算。

C2向下的公式:

=COUNTIF($A$1:$A$20,"="&A2)<>SUMPRODUCT(($A$1:$A$20=A2)*($B$1:$B$20=B2))

D2向下的公式:

=IF(C2,SUMPRODUCT(($A$1:$A$20=A2)*($B$1:$B$20=B2)),0)

答案 1 :(得分:0)

  1. 将前两列复制并粘贴到其他位置。
  2. 在“数据”选项卡中选择数据并使用“删除重复项”工具。
  3. 启动第三列并使用COUNTIFS获取多个列标准以获取每行的计数。