[[20141026171356]] 『セルのマッチング(n対n)』(うみ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルのマッチング(n対n)』(うみ)

お世話になります。

A列に1000個ほどのデータ(文字列で日本語です)があり、B列に同じく1000個ほどのデータがあります。データの一部は被ります。

これらのマッチングをして差分(A列にあって、B列にないもの)を取得したいのですが、どのような方法があるでしょうか?

< 使用 Excel:Excel2013、使用 OS:Windows8 >


 C1=IF(COUNTIF(B$1:B$1000,A1)=0,"〇","")
 を C1:C1000 にコピーし、〇でオートフィルタをかければ、A列だけにあるデータが
 確認できると思います。
(Mook) 2014/10/26(日) 17:23

ありがとうございます。さっそく試してみます。
(うみ) 2014/10/26(日) 18:44

 参考までに、Dictionaryを使ったマッチング例です。
 (1行目は項目名「氏名」となっていると仮定、結果を 同じシートのD列に出すようにしました)

 Sub AにあってBにない氏名()
    Dim dic As Object
    Dim dic2 As Object
    Dim a, b, e

    'A,B列データを配列に
    a = Range("A2", Cells(Rows.Count, 1).End(xlUp)).Value
    b = Range("B2", Cells(Rows.Count, 2).End(xlUp)).Value

    'B列データをDictionaryに
    Set dic = CreateObject("Scripting.Dictionary")
    For Each e In b
        dic(e) = Empty
    Next

    'dic(B列)にないA列データだけを dic2に
    Set dic2 = CreateObject("Scripting.Dictionary")
    For Each e In a
        If Not dic.Exists(e) Then dic2(e) = Empty
    Next
    'D列に 書き出し
    [D1].Value = "氏名"
    [D2].Resize(dic2.Count).Value = Application.Transpose(dic2.Keys())
 End Sub
(kanabun) 2014/10/26(日) 23:26

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.