今回は、複数のExcelファイルにまたがって、任意のデータを抽出する方法を紹介します。複雑な条件も指定できます。もしこれを手動で解決するならば、ファイルを検索し、一つずつファイルを開いて該当する行を探して新しいシートにコピー・アンド・ペーストして、また次のファイルで同じことをする…という作業を延々と繰り返さなくてはならないでしょう。JavaScriptでプログラムを作れば、このような作業を、あっという間に終えることができます。
どんな場合にこのプログラムが使えるのでしょうか。今回も前々回で登場したとあるオフィスの光景を見てみましょう。いつものように、部長のJさんが、部下のWさんを呼び出しました。
部下W「極秘ですか(笑)、なんだか面白そうですね」
J「いや、それが、ぜんぜん面白くないんだよ。単純な仕事でね。このUSBメモリーの中に、社外秘の顧客リストがExcelファイルで100個ほど入っている。この中から三鷹市に住んでいる顧客だけを抜き出してほしいのだけど」
W「手動でやったら時間がかかりそうですね」
J「そうなんだ。ファイル3つ開くところまでやったんだけど、疲れちゃって。お茶を飲んでいたら君のことを思い出したんだよ」
W「光栄です(それって何だかなあ…)」
J「悪いんだけど、今日中にお願いできないかな? 明日の朝の会議に使いたいので」
W「えっ、また、今日中ですか?!」
J「じゃぁ頼みますよ」
そう言い残して、J部長は去ってしまったのでした。
◆ ◇ ◆ ◇ ◆
担当者や部署ごとに、別々の名簿ファイルに顧客リストや商品リストを作っているというのはよくある話です。ある程度規模の大きな会社なら、既にこうしたデータを統合、社内用データベースで一元管理していると思います。しかし、IT化が進んでいない現場や、それほど大切でないちょっとしたデータである場合には、Excelを活用してデータ管理をしていることも多いでしょう。そうすると、時々、そうしたデータを横断検索する必要が生じます。
今回のプログラムは、検索対象となるExcelファイルを、プログラムにドラッグ・アンド・ドロップすることで、データを含む行を抽出して、CSVファイルとして保存してくれるというものです。
このプログラム一式(09-program-excelPickup.zip)は、こちらからダウンロードすることができます。WSHのJScriptを使っているので、Windows上でのみ動作します。ZIPファイルをダウンロードし、解凍すると中に説明(ReadMe.txt)とプログラム(pickup.jse)とサンプルが入っています。