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

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

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


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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容