Excel - 在两列中列出 Excel 中两个源列中的每个唯一对

DrW*_*hat 4 excel excel-formula

一段时间以来,我一直在愉快地使用索引、匹配和计数来列出唯一值,但现在我想根据两列值列出 Excel 工作表中的唯一对。例如,如果数据是这样:

输入

> Col. 1   Col. 2
  A        x   
  A        x
  B        x 
  B        y
  B        x
  C        x 
  C        y 
  C        x
Run Code Online (Sandbox Code Playgroud)

唯一的对列表应该是:

> Col. 1   Col. 2
  A        x   
  B        x 
  B        y
  C        x 
  C        y 
Run Code Online (Sandbox Code Playgroud)

这似乎是一个常见的建议: =INDEX(!D$4:D$5, MATCH(0, COUNTIF($A$57:$A59,!$C$4:$C$5) * COUNTIF($B$57:$B59, !$D$4:$D$5), 0)),"") 但不会返回像示例中的 C 和 y 对那样的值,因为 C 和 y 已经出现在不同的对中。

我尝试过 concat (在 countif 中不起作用)、sumproduct (似乎不喜欢 sumproduct(--($A$57:$A59=!$C$4:$C$5), --($B$57 :$B59 = !$D$4:$D$5)); 和 countifs($A$57:$A59,!$C$4:$C$5),$B$57:$B59,!$D$4:$D$5 )(返回错误)。

PS - 我对 VB 一无所知,并且由于各种原因需要公式方法。

Tom*_*rpe 6

您可以使用 COUNTIFS:

=IFERROR(INDEX($A$2:$B$9,MATCH(0,COUNTIFS($D$1:$D1,$A$2:$A$9,$E$1:$E1,$B$2:$B$9),0),1),"")
Run Code Online (Sandbox Code Playgroud)

对于第一列和

=IFERROR(INDEX($A$2:$B$9,MATCH(0,COUNTIFS($D$1:$D1,$A$2:$A$9,$E$1:$E1,$B$2:$B$9),0),2),"")
Run Code Online (Sandbox Code Playgroud)

对于第二列

使用数组公式输入CtrlShiftEnter

在此输入图像描述

请注意,如果包含空白单元格,公式将给出虚假的额外行 - 这可以修复:

=IFERROR(INDEX($A$2:$B$9,MATCH(1,(COUNTIFS($G$1:$G1,$A$2:$A$9,$H$1:$H1,$B$2:$B$9)=0)*($A$2:$A$9<>"")*($B$2:$B$9<>""),0),1),"")

=IFERROR(INDEX($A$2:$B$9,MATCH(1,(COUNTIFS($G$1:$G1,$A$2:$A$9,$H$1:$H1,$B$2:$B$9)=0)*($A$2:$A$9<>"")*($B$2:$B$9<>""),0),2),"")
Run Code Online (Sandbox Code Playgroud)