Excelやcsv等の表形式データの加工はSQLを使うと便利

仕事柄、csv(カンマで区切られたデータ)やエクセルの、数万件のデータを扱うことが多いのですが、件数が多くなってくると。エクセルの動きも遅くなってきます。

特に、それらのデータから値を取捨選択したり、すべての項目に対して一律加工を行う時には、SQLを使うと便利です。

SQLはデータベースの問い合わせに利用される言語で、データの抽出や加工が(慣れた人にとっては)しやすいと思います。

データベースというと、MySQLやOracleなどを思い浮かべる人が多いと思いますが、わざわざサーバをインストールしなくても、ファイル形式のDBソフトがあります。

「SQLite」といわれるDBで、ファイル形式ですので、お手軽に扱えます。SQLiteのインストールは簡単で、MySQLなどのように常駐したりもしませんし、何より、ファイルをメールで送ってしまえば、SQLiteのあるどの環境でもSQL加工が行えるという利点があります。

さらに、SQLiteをGUIから使用することのできるソフトもいくつかあり、その中の「PupSQLite」というソフトが非常に使いやすいので、愛用しています。

 

私の思う、PupSQLiteの利点は、

エクセルやcsvファイルをインポートできるが、それを自動でテーブルにしてくれるので、DDLなどのめんどくさいテーブル定義を行う必要がない

というところです。

特にエクセル・ブックにある複数シートのデータを別々のテーブルとして読み込んでくれるのは、秀逸ですね!

 

PupSQLの使い方

始めに、ここからソフトをダウンロードしてきて、インストールします。SQLiteのライブラリも同梱されていますので、別途SQLiteをインストールする必要はありません。

インストール後、ソフトを起動します。

「ファイル」⇒「新規作成」を選択すると、下記のような画面になり、データベースのファイルを保存する画面になります。このファイルひとつが、一つのDBとなり、いくつかのテーブルをまとめて保持しておけると考えてください。

image

 

 

上記でファイル名を入力して保存し、最初のDBファイルを作成しました。

image

 

 

それから、画面上部の「ファイルからインポート」ボタンを押下し、インポート対象のファイルを選びます。

今回は、シートの2つあるエクセル・ブックを指定しました。すると、エクセルの解析が行われ、取り込むシートを選択するダイアログが開きます。ここで、取り込みのオプションとして、1行目を絡むとして無視する設定も可能です。

(1行目は、取り込み先のテーブルのカラム名として使われます。)

image

 

 

上記ダイアログで「実行」ボタンを押すと、データの解析が行われて、下記のようにテーブル構造の提案が行われます。

image

 

 

ここでは、元のデータが適切に認識されているかを確認しましょう。データの型やカラム数、カラム名を確認します。

「OK」を押すと、データのインポートが行われます。

image

 

 

ここまで来れば、あとは、SQLでデータに対して加工を行えます。加工後のデータは、また、エクセル等でエクスポートすれば、加工後のデータをエクセルに戻すことができます。

 



こんな記事も関係あるかも。読んでみてね。

コメントを残す

サブコンテンツ

このページの先頭へ