2019年1月13日日曜日

複数のExcelファイルをGrep検索する方法に悩む! ExcelGrepをDLして解決

今回は、ExcelのGrep検索に悩んだ話を書かせて頂きたいと思います。

Grepとは、多数の(複数の)ファイルの中から目的の文字列を検索する事で、「グレップ」と読んでいます。

この機能、テキストエディタでは当たり前の機能というか、無いと切羽詰まる超重要機能です。

しかし、テキストではなくて、相手が多数のExcelファイルだとどうやるのであろうか??

結論から言うと、ExcelのVBAで作った検索機能を使うのが確実です。

色々悩んだ結果、Windowsの検索機能ではイマイチ、テキストエディタのGrepでも一部やれそうなんですが、安定しない。

自分で作るのが筋なんでしょうが、ネットを調べると、GitHubに「ExcelGrep」を公開してもらっており、これを使わせて頂く事にいたしました。

感謝です。

ちなみに、ExcelGrep(エクセルグレップ)というネーミングは、どうも複数の方が思いついてらっしゃるみたいで、検索すると色々なExcelGrepがヒットして来るので混乱しないように注意が必要です。


↑私の選んだExcelGrepは、https://gist.github.com/TatsuoWatanabe/2ed13d04d9dd686e9b23206c88a7e1a4です。

ダウンロードさせて頂きます。


↑ダウンロードして解凍すると、フォルダの中に「ExcelGrep.xlsm」がありますので、これがアプリケーション本体となります。


↑アプリケーションを実行すると、検索画面が作りこまれたシートが開きます。

使い方はとても分かりやすくて、検索対象フォルダを選択し、検索条件を正規表現で入力し、検索実行ボタンを押下するだけです。

最初は使い方をガイドする目的だと思うのですが、初期値が入っているのが分かります。


↑実際に使ってみると、現在の.xlsx形式も、昔のバイナリ形式の.xls形式も両方大丈夫でした。

また、テキストの途中に改行コードが入っていても問題なく検索が出来ました。

結果は一覧表形式で表示されるのでとても分かりやすいです!!


■実際に検索してみる

↑上記内容の.xlsxと、.xlsを2ファイル用意して検索してみるとします。


■or条件の書き方

↑ExcelGrepの検索条件は、Google検索のように空白でキーワードを区切る・・・ではなくて、ずばり正規表現が書くようになっています。

or条件で、「003か002かmoriに一致する内容を検索してね」だと、以下のようになります。

003|002|mori


■and条件の書き方

↑or条件は直感的なのですが、正規表現のand条件(に相当する記述)は若干長いです。

and条件で「002ともりもりの両方を含む内容を検索してね」だと、以下のようになります。

^(?=.*002)(?=.*もりもり).*$ 


これと、YokkaGrepを組み合わせれば色々と安心な気がします。