EXCEL文書で、1行が特定の対象(行)に関わる複数の情報(列)で構成されるのであれば、複数の列で検索したくなることがある。
このようなケースで、EXCELの「フィルタ機能」を使うことになるが、残念なことに複数の列にフィルタをかけると、すべての列に特定文字があるケースしか抽出できない。すなわち、AND条件で絞られることになってしまう。
どこかの列に探したい文字列が散在するケースを抽出できない(OR条件)。EXCELシートをSQLで検索すれば、可能だが、SQLの知識が必要となり、ハードルが高い。
そこで、登場するのが、ruby1行(ワンライン)プログラム 。プログラムといっても、1行なので、それほどハードルは高くない!!!
やり方は、以下。
1)EXCELをCSVへ変換する。
セル内改行やセル内カンマを上手に除去する必要あり。詳しくは、これ。
EXCELで困ったときの小技 うまくCSV化できないなら、Rubyを使え
2)ルビー1行プログラムで複数列フィルタをかける。詳しくは、ここ。
ルビーワンライナー ルビー1行プログラミングで仕事を効率化
1行ルビーは、こんな感じ。
ruby -ne 'puts $_ if $_include ?("くるみ")' a.csv >o.csv
前提として。1)で作成した、a.CSVにはEXCELをCSV化したデータがある
ここで一息のコーナーです。
私のrubyバイブルは、Cuzicさんの
・Ruby on Windows ~rubyで丸投げルーチンワーク
マイコミ(毎日コミュニケーションズ)
WindowsのEXCELやInternet ExplorerでのRubyの活用方法が満載です。
0 件のコメント:
コメントを投稿