如何比较2个大/大/长列表并在一个字段中输出任何不匹配的结果

时间:2018-10-10 10:21:33

标签: excel comparison

我有2个巨大的专栏,里面装有学生证

第1列(SID)具有110,000行

第2列(SID2)具有100,000行

如何检查第1列=第2列,反之亦然,然后将其全部放在一个字段中!

当前结果

SID SID2 
45  45
142 142
237 218
238 441  
410 410
440 442 
452 237
    452

最终预期输出

SID SID2  Check
45  45
142 142
237 218
238 441   238,441
410 410
440 442   440
452 237
    452
          238,441,440

如您所见,所有不匹配的ID都应放在一个字段中,这样我可以比查找100,000行更容易地看到它们。

2 个答案:

答案 0 :(得分:1)

看起来SolarMike假设测试为A2 = B2,但我想您是在问A2 = [B列中的任何内容]和B2 = [A列中的任何内容]。这是我测试的方式: Testing multiple ranges against each other

C列:

=IFERROR(IF(MATCH(A2,B:B,0)>1,"",A2),A2)

D列:

=IFERROR(IF(MATCH(B2,A:A,0)>1,"",B2),B2)

E栏(非常粗糙,但有效):

=IF(AND(C2="",D2=""),"",CONCATENATE(C2,",",D2,","))

现在,您真正的问题是将所有内容都放入一个单元格中。我知道如何执行此操作的唯一方法是使用串联,但是它需要您单独选择每个单元格。

=CONCATENATE(E2,E3,E4,E5,E6,E7,E8,E9,E10)

对于10000行,这似乎不可行。另外,该输出不是很灵活,但是我离题了。

如果要将一个单元中的所有内容连接在一起,则有两个选择。

A)在此处使用VBA代码(这很简单,这似乎是一个可行的选择):Concatenate Excel Ranges with VBA

B)希望您拥有带有TEXTJOIN()See Support article here.

的Office 365

答案 1 :(得分:0)

您可以将match()与iferror()和if()结合使用:

=IF(IFERROR(MATCH(A1,B1,)>0,0),"ok",A1)

请参阅: enter image description here

要同时返回两个字段,请使用:

=IF(IFERROR(MATCH(A1,B1,)>0,0),"ok",A1)&" , "&IF(IFERROR(MATCH(A1,B1,)>0,0),"ok",B1)