在Excel中比较两列并排除重复项

9
我想在Excel中比较两列的值,如下图所示: enter image description here 使用公式,我想将值放入“A中不存在的值”和“B中不存在的值”。任何帮助都将不胜感激。
我已经在这里分享了相同的Excel表格(链接)
2个回答

13
以下方法可行- 对于每个单元格,在第2行添加公式,然后拖动即可。 A中不存在于B中的值
=IF(ISERROR(MATCH($A$2:$A$20,$B$2:$B$17,0)),A2,"")

结果 = x,y,z,i,j,k,l,u

NB:您的示例电子表格存在错误,因为“u”位于A列而不是B列,但您在列C中未将其列入结果集中

B中不存在的值A

=IF(ISERROR(MATCH($B$2:$B$17,$A$2:$A$20,0)),B2,"")

结果 = q,r,e,f,g


$代表什么?当您在第一个单元格中编写时,$不会自动添加前缀。我必须手动添加它。 - Ashish Gupta
2
$符号使范围变为绝对值(即A2:A20和B2:B17)。这意味着当您向下拖动公式时,引用仍然是A2:A20和B2:B17。如果您没有这样做,范围将会增加,即A2:A20,A3:A21,A4:A22。尝试一下没有$符号的公式,您就会明白我的意思... - Alex P
你能解释一下为什么在match函数中的value参数需要使用绝对范围吗?这个公式对我有效:-=IF(ISERROR(MATCH(A2,$B$2:$B$17,0)),A2,"") - rogerstone
我知道这有点过时,但您的函数对于Excel 2016很有帮助。我进行了直接单元格到列的比较,并将公式下拉应用到其余部分。否则它会给出一些错误的不匹配项=IF(ISERROR(MATCH(A1,B:B,0)),A1,"")。 - iowatiger08

0

您也可以使用高级筛选来完成此操作。 假设数据在A列和B列中。 在C2单元格中写入=SUMPRODUCT(--($B$2:$B$17=A2))=0 选择数据A1:A12 点击高级筛选,选择复制到另一个位置 列表区域=$A$1:$A$22 条件区域=$C$1:$C$2(注意C1为空) 在复制到区域中选择E1,点击确定 这将给出不在B中存在的A的值。

在D2单元格中写入=SUMPRODUCT(--($A$2:$A$22=B2))=0

选择数据B1:B17 点击高级筛选,选择复制到另一个位置 列表区域=$A$1:$A$22 条件区域=$D$1:$D$2(注意D1为空) 在复制到区域中选择F1,点击确定 这将给出不在A中存在的B的值。

您可以通过一行代码自动化此过程。

Sub Get_Data1()

[List1].AdvancedFilter 2, [Crt1], [Dest1], True

End Sub

Sub Get_Data2()

[List2].AdvancedFilter 2, [Crt2], [Dest2], True

结束子程序


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接