仕事柄、csv(カンマで区切られたデータ)やエクセルの、数万件のデータを扱うことが多いのですが、件数が多くなってくると。エクセルの動きも遅くなってきます。
特に、それらのデータから値を取捨選択したり、すべての項目に対して一律加工を行う時には、SQLを使うと便利です。
SQLはデータベースの問い合わせに利用される言語で、データの抽出や加工が(慣れた人にとっては)しやすいと思います。
手軽にデータ加工に使えるDBを知っておくと、超便利!
データベースというと、MySQLやOracleなどを思い浮かべる人が多いと思いますが、わざわざサーバをインストールしなくても、ファイル形式のDBソフトがあります。
「SQLite」といわれるDBで、ファイル形式ですので、お手軽に扱えます。SQLiteのインストールは簡単で、MySQLなどのように常駐したりもしませんし、何より、ファイルをメールで送ってしまえば、SQLiteのあるどの環境でもSQL加工が行えるという利点があります。
さらに、SQLiteをGUIから使用することのできるソフトもいくつかあり、その中の「PupSQLite」というソフトが非常に使いやすいので、愛用しています。
私の思う、PupSQLiteの利点は、
エクセルやcsvファイルをインポートできるが、それを自動でテーブルにしてくれるので、DDLなどのめんどくさいテーブル定義を行う必要がない
というところです。
特にエクセル・ブックにある複数シートのデータを別々のテーブルとして読み込んでくれるのは、秀逸ですね!
PupSQLの使い方
始めに、ここからソフトをダウンロードしてきて、インストールします。SQLiteのライブラリも同梱されていますので、別途SQLiteをインストールする必要はありません。
インストール後、ソフトを起動します。
「ファイル」⇒「新規作成」を選択すると、下記のような画面になり、データベースのファイルを保存する画面になります。このファイルひとつが、一つのDBとなり、いくつかのテーブルをまとめて保持しておけると考えてください。
上記でファイル名を入力して保存し、最初のDBファイルを作成しました。
それから、画面上部の「ファイルからインポート」ボタンを押下し、インポート対象のファイルを選びます。
今回は、シートの2つあるエクセル・ブックを指定しました。すると、エクセルの解析が行われ、取り込むシートを選択するダイアログが開きます。ここで、取り込みのオプションとして、1行目を絡むとして無視する設定も可能です。
(1行目は、取り込み先のテーブルのカラム名として使われます。)
上記ダイアログで「実行」ボタンを押すと、データの解析が行われて、下記のようにテーブル構造の提案が行われます。
ここでは、元のデータが適切に認識されているかを確認しましょう。データの型やカラム数、カラム名を確認します。
「OK」を押すと、データのインポートが行われます。
ここまで来れば、あとは、SQLでデータに対して加工を行えます。加工後のデータは、また、エクセル等でエクスポートすれば、加工後のデータをエクセルに戻すことができます。