我有这两个同伴:
Column 1 Column 2
A E
B F
C B
D A
G
我需要比较两列,因此输出必须是:
Column 3
A
B
C
D
E
F
G
答案 0 :(得分:0)
好吧,如果您的数据在A列和B列中:
| A | B |
|--- |---- |
| A | E |
| B | F |
| C | B |
| D | A |
| G | |
您可以使用此代码,一旦达到限制,它就会抛出#N/A
,并且要求第一行包含一些唯一的文本:
=IFERROR(INDEX($A$1:$A$4,MATCH(0,COUNTIF($D$1:D1,$A$1:$A$4),0)),INDEX($B$1:$B$5,MATCH(0,COUNTIF($D$1:D1,$B$1:$B$5),0)))
这是一个数组公式,需要通过 Ctrl + Shift + Enter 来应用。
结果列D
:
| D |
|-------- |
| Unique |
| A |
| B |
| C |
| D |
| E |
| F |
| G |
| #N/A |
答案 1 :(得分:0)
可以使用像这样的公式(从单元格C2开始)完成此操作:
=IFERROR(INDEX($A$2:$A$5,MATCH(0,INDEX(COUNTIF($C$1:C1,$A$2:$A$5),,),)),IFERROR(INDEX($B$2:$B$6,MATCH(0,INDEX(COUNTIF($C$1:C1,$B$2:$B$6),,),)),""))
这是一个常规(非数组)公式。
请注意,尽管结果看上去已排序,但没有排序,但会按遇到值的顺序进行报告。
我知道这不是请求的一部分,但是自从我提到它以来,如果我们希望对列表进行排序而不管原始列的顺序如何,我认为这个公式输入C2并向下复制就可以作为数组公式用[Ctrl] + [Shift] + [Enter]输入:
=IFERROR(INDEX($A$2:$B$6, SMALL(IF(SMALL(IF(COUNTIF($C$1:C1, $A$2:$B$6)+ISBLANK($A$2:$B$6)=0, COUNTIF($A$2:$B$6, "<"&$A$2:$B$6)+1, ""), 1)=IF(ISBLANK($A$2:$B$6), "", COUNTIF($A$2:$B$6, "<"&$A$2:$B$6)+1), ROW($A$2:$B$6)-MIN(ROW($A$2:$B$6))+1), 1), MATCH(MIN(IF(COUNTIF($C$1:C1, $A$2:$B$6)+ISBLANK($A$2:$B$6)>0, "", COUNTIF($A$2:$B$6, "<"&$A$2:$B$6)+1)), INDEX(IF(ISBLANK($A$2:$B$6), "", COUNTIF($A$2:$B$6, "<"&$A$2:$B$6)+1), SMALL(IF(SMALL(IF(COUNTIF($C$1:C1, $A$2:$B$6)+ISBLANK($A$2:$B$6)=0, COUNTIF($A$2:$B$6, "<"&$A$2:$B$6)+1, ""), 1)=IF(ISBLANK($A$2:$B$6), "", COUNTIF($A$2:$B$6, "<"&$A$2:$B$6)+1), ROW($A$2:$B$6)-MIN(ROW($A$2:$B$6))+1), 1), , 1), 0), 1),"")
有关修改后的原始值,请参阅以下内容。我将输入列引用为一个范围,这使它有点复杂,因为我必须删除空白值。