前提・実現したいこと
VBAで大量データの一部一致検索を行いたいです。
処理件数が多く、どのように処理すればいいか分からず、悩んでいます。
1:列Aのキーワードを元に列B内を検索。
2:”部分一致”すれば、列Cに部分一致したデータ(列Bの値)を全てカンマ区切りで出力します。
3:それ以外は NA を列Cへ出力します。
【データサンプル↓】プログラム実行前
列A(100万行rawdata) | 列B(20万行rawdata) | 列C(空白)
アイス たまごっち2
たまごっち アイス
ほげほげランド お茶
ほげほげマウス ほげほげランドスーパー
綾鷹 ほげほげランドエクストラ
・・・ ・・・
・・ ・・
【データサンプル↓】プログラム実行後
列A(100万行rawdata) | 列B(20万行rawdata) | 列C(出力結果)
アイス たまごっち2 アイス
たまごっち アイス たまごっち2
ほげほげランド お茶 ほげほげランドスーパー,ほげほげランドエクストラ
ほげほげマウス ほげほげランドスーパー NA
綾鷹 ほげほげランドエクストラ NA
・・・ ・・・ ・・・
・・ ・・ ・・
・ ・ ・
発生している問題・エラーメッセージ
データが膨大な為、単純にループすると処理が終わりません(1048576行×20万行)。 Dictionaryを使う方法では完全一致検索しかできませんでした。
試したこと
https://officedic.com/excel-vba-highspeed-find/
こちらのサイトのDictionaryを使用した方法で、”完全一致”は出来ました。
(VBA running time は大体15秒くらいでした)
補足情報(FW/ツールのバージョンなど)
Excel2019
回答3件
あなたの回答
tips
プレビュー