从多列中删除重复项,以便输出在excel中是唯一的

时间:2018-08-10 09:00:09

标签: excel

我有这两个同伴:

Column 1    Column 2
A              E
B              F
C              B
D              A
               G

我需要比较两列,因此输出必须是:

Column 3
A
B
C
D
E
F
G

2 个答案:

答案 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),,),)),""))

这是一个常规(非数组)公式。

请注意,尽管结果看上去已排序,但没有排序,但会按遇到值的顺序进行报告。Columns 1, 2, and 3

我知道这不是请求的一部分,但是自从我提到它以来,如果我们希望对列表进行排序而不管原始列的顺序如何,我认为这个公式输入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),"")

有关修改后的原始值,请参阅以下内容。我将输入列引用为一个范围,这使它有点复杂,因为我必须删除空白值。

enter image description here