如何查找A列有B列没有的数据

《Excel 2010 函数与公式》疑难140

如图,需要找出A列有B列没有的数据,


如何查找A列有B列没有的数据_第1张图片
1.jpg

书上给出的Excel函数如下,要用到可怕的数组函数,括号数量堪比Lisp:

{=INDEX(A:A,SMALL(IF(ISNA(MATCH($A$3:$A$18,$B$3:$B$10,0))*(MATCH($A$3:$A$18,$A$3:$A$18,0)=ROW($3:$18)-2),ROW($3:$18),4^8),ROW(1:1)))&""}

使用VBA就清晰多了,新建两个数组,分别存储两列数据,比较键值即可:

Sub A列有B列无()
    Dim d, d1, Temp
    Set d = CreateObject("Scripting.Dictionary")
    Set d1 = CreateObject("Scripting.Dictionary")
    For Each Temp In Range("b3:b10")
        d1(Temp.Value) = 1
        
    Next
    For Each Temp In Range("a3:a18")
        If Not d1.exists(Temp.Value) Then d(Temp.Value) = 1
    Next
    arr = d.keys
    Range("D3").Resize(UBound(arr) + 1, 1) = WorksheetFunction.Transpose(arr)
End Sub

你可能感兴趣的:(如何查找A列有B列没有的数据)