[501] [質問]複数のキーワードで抽出
J [2019/05/29 15:21:21]
初めて投稿させていただきます。
数万行ある「A.csv」のようなCSVファイルから、
「B.txt」のような複数のキーワードを指定して、
「A.csv」の特定の列…下記例だと1列目にそれらを含む行を抽出した
「C.csv」を作成したいのですがマクロで出来ますでしょうか?
お教えいただければ幸いです。
※特定の列は2列目や3列目に変更出来るとありがたいです。
※検索はしたのですが質問が重複していたらすみません。
●A.csv---------------------------------
aaaaa,あああああ,1111111111
bbbbb,いいいいい,2222222222
bbbbb-set1,ううううう,3333333333
bbbbb-set2,えええええ,4444444444
ccccc,おおおおお,5555555555
ddddd,かかかかか,6666666666
ddddd-set,ききききき,7777777777
eeeee,くくくくく,8888888888
fffff,けけけけけ,9999999999
sale-fffff,こここここ,0000000000
・・・
----------------------------------------
●B.txt---------------------------------
aaaaa
bbbbb
fffff
----------------------------------------
●C.csv---------------------------------
aaaaa,あああああ,1111111111
bbbbb,いいいいい,2222222222
bbbbb-set1,ううううう,3333333333
bbbbb-set2,えええええ,4444444444
fffff,けけけけけ,9999999999
sale-fffff,こここここ,0000000000
----------------------------------------
Re: [501] [質問]複数のキーワードで抽出
あすかぜ [2019/05/29 21:10:35]
このマクロが使えるでしょうか。
https://www.asukaze.net/soft/cassava/macro/asukaze/bbs501_20190529.cms
A.csv を Cassava Editor で開き、検索対象の列にカーソルを合わせた状態でこのマクロを実行してください。
表示されるダイアログボックスに B.txt の内容を入力して「OK」ボタンを押すと、それらを含む行のみを抽出します。
過去のスレッドとしてはこちらが近いですが、検索対象が 1 列目に固定されていたので、カーソル列を対象とするように変更しました。
https://www.asukaze.net/soft/cassava/bbs/index.cgi?t=242
よろしくお願いします。
Re: [501] [質問]複数のキーワードで抽出
J [2019/05/30 16:16:56]
早速のご回答ありがとうございます。
投稿例でマクロを試した所、思い通りの結果を得る事が出来ました。
ありがとうございました。
ただ、上記テストは上手く動作したのですが、
80MBほどある4万行のCSVファイルで200ほどのキーワードを指定した所、
ハードの問題なのか、何時間経てば終わるのかわからない速度に。。。
お教え頂いたマクロを使って、何かやり繰りする方法が無いか考えてみます。
本当にありがとうございました!
Re: [501] [質問]複数のキーワードで抽出
あすかぜ [2019/05/30 21:15:59]
DeleteRow() は遅いので、4 万行あるとかなり時間がかかりそうですね。
複数行連続して削除できる箇所をまとめて削除するように変更してみました。
https://www.asukaze.net/soft/cassava/macro/asukaze/bbs501_20190530.cms
多少は速く処理が進むでしょうか?
Re: [501] [質問]複数のキーワードで抽出
J [2019/05/31 13:39:10]
改良頂きありがとうございます!
前の投稿と同じデータで試してみた所、5分と経たずに処理することが出来ました!
本当にありがとうございました!
自分でもマクロを改良出来るよう勉強したいと思います!