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 一无所知,并且由于各种原因需要公式方法。
您可以使用 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)
归档时间: |
|
查看次数: |
7828 次 |
最近记录: |