比较Excel中两列A和B的数据,显示在A列中存在但B列中不存在的数据。

26

我有一个Excel文件,其中列A和列B都有数据,这些数据可能存在于其他列中,也可能不存在。我只对列A中不存在于列B中的数据感兴趣。这两个列具有相同的标题名称。我可以使用什么公式来显示哪些列A中的项目不在列B中?


1
请查看Excel比较两列匹配和差异 - Michael Freidgeim
3个回答

51

把这个放在C2单元格中,然后向下复制

=IF(ISNA(VLOOKUP(A2,$B$2:$B$65535,1,FALSE)),"not in B","")

如果 A 中的值不在 B 中,则列 C 中的单元格将显示 "not in B"。


对于较新版本的MS Excel,","被替换为";" =IF(ISNA(VLOOKUP(A2;$B$2:$B$65535;1;FALSE));"不在B中";"") - Tim

7
假设您有A1:A10和B1:B10中的数据,并且您想要突出显示A1:A10中哪些值不出现在B1:B10中。
请按以下步骤尝试:
1. 格式 > 条件格式... 2. 从下拉菜单中选择“公式是” 3. 输入以下公式: =ISERROR(MATCH(A1,$B$1:$B$10,0)) 4. 现在选择您要突出显示在列A中未出现在列B中的值的格式
这将突出显示列A中任何未出现在列B中的值。

+1 不错的解决方案。我刚测试了一下,但是似乎你需要将 b 列的范围(类似于 $b$1:$b$10)作为第二个参数。 - Nicola Cossu
@nick rulez - 很好的发现。你是正确的。我已经相应地更新了答案。 - Alex P

4
所有在列A中出现但不在列B中出现的数值将会被标为红色背景。希望这能作为一个起点帮助您。
Sub highlight_missings()
Dim i As Long, lastA As Long, lastB As Long
Dim compare As Variant
Range("A:A").ClearFormats
lastA = Range("A65536").End(xlUp).Row
lastB = Range("B65536").End(xlUp).Row

For i = 2 To lastA
    compare = Application.Match(Range("a" & i), Range("B2:B" & lastB), 0)
        If IsError(compare) Then
            Range("A" & i).Interior.ColorIndex = 3
        End If
Next i
End Sub

有人能告诉我,variant 是否是声明 compare 变量的正确类型吗? - Nicola Cossu
整数会很好用。 - Lance Roberts

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