今回は、ExcelからPostgreSQLに接続して、データベース内のデータを用いてピボットテーブルを作成する方法をご紹介します。サンプルとして以下のような項目とデータを含む「注文情報」というテーブルを使ってピボットテーブルを作成してみます(PostgreSQLのデータベース内に作成してあるテーブルで、上記のピボットテーブルはサンプルデータから作成したものです)。
今回の環境はWindows7とExcel 2010ですが、多少バージョンが違ってもほぼ同じようにできると思います。
■手順の概要
ExcelからPostgreSQLに接続してピボットテーブルを作成する基本的な手順は以下の通りです。
- PostgreSQL用のODBCドライバをインストールする
- ODBCデータソースの設定を行う
- Excelで外部データソースに接続する
- Excel上でピボットテーブルを作成する
■PostgreSQL用ODBCドライバのインストール
PostgreSQLのODBCドライバをインストールしますが、まずはインストールする前に適切なODBCドライバを選択しなければなりません。
なぜなら、PostgreSQLのODBCドライバには64ビット版と32ビット版があり、Windows上では、64ビット版のODBCの設定と32ビット版のODBCの設定は、それぞれ別に管理されるからです。
ODBCを外部データソースとして使用するExcelには32ビット版と64ビット版があり、Excelは、Excelのバージョンに応じたODBCの設定を参照します。つまり、64ビット版のExcelは64ビット版のODBCの設定を参照し、32ビット版のExcelは32ビット版のODBCの設定を参照するのです。
(選択を間違えると、ODBCドライバの設定をしているのに、Excelからは外部データソースが見えない、という事象が発生します)
OSとExcelとODBCのバージョンは、以下のような組み合わせが考えられます。
- Windows7 64ビット版、Excel 64ビット版、ODBCドライバ 64ビット版
- Windows7 64ビット版、Excel 32ビット版、ODBCドライバ 32ビット版
- Windows7 32ビット版、Excel 32ビット版、ODBCドライバ 32ビット版
・Windows7のバージョンの確認方法
スタートメニューから「コンピュータ」を選択し、開いたウィンドウのメニューから「システムのプロパティ」をクリックすると、システムの情報を確認することができます。
その中の、「システムの種類」に「64ビット オペレーティングシステム」とあれば64ビット版のWindows7です。
・Excelのバージョンの確認方法
メニューから「ファイル」を選択し、「ヘルプ」をクリックして表示すると、Officeのバージョン情報を参照することができます。
「バージョン」の項目に「(64ビット)」という表記があれば、64ビット版のExcelであることが分かります。
自分が必要とするバージョンのODBCドライバを確認したら、PostgreSQLのサイトからODBCドライバをダウンロードします。
http://www.postgresql.org/ftp/odbc/versions/msi/
ZIPファイルがたくさんありますが、ファイル名に「-x64」と付いているのは64ビット版のドライバで、付いていないのが32ビット版です。
psqlodbc_09_01_0200.zip
のようなファイル名が付いています。「09_01」はPostgreSQLのバージョン9.1に対応していることを示しており、「0200」はその後のリリースバージョンです。
基本的には、使用するPostgreSQLのメジャーバージョンと同じもの、あるいはそれよりも新しいものを選択しておけば良いでしょう。
ZIPに含まれているmsiファイルを起動すればインストールは簡単に実行できます。
■ODBCデータソースの作成
64ビット版Windows7上で64ビット版ODBCの設定を行う場合、また32ビット版Windows7上で32ビット版ODBCの設定を行う場合には、「コントロールパネル→システムとセキュリティ→管理ツール」で管理ツールを起動し、「データソース(ODBC)」をダブルクリックするとODBCの「ODBC データソース アドミニストレータ」のダイアログを起動することができます。
但し、64ビット版Windows7上で32ビット版ODBCの設定を行う場合には、odbcad32.exeというプログラムを指定して起動しなければなりません。エクスプローラを開いて以下のプログラムを直接起動してください。
C:\Windows\SysWOW64\odbcad32.exeODBCデータソースアドミニストレータを起動したら、「追加...」をクリックして「データソースの新規作成」の中から「PostgreSQL Unicode」を選択、「完了」をクリックします。
>
すると、PostgreSQLの接続情報を設定するダイアログが表示されますので、PostgreSQLへの接続に必要な情報を入力します。(「テスト」をクリックすると、実際に接続を行って、入力した設定で接続できるかどうかを確認することができます)
■ExcelからODBC経由で接続してピボットテーブルを作る
最後に、ExcelからODBC経由でPostgreSQLに接続してピボットテーブルを作成します。
まず、Excelの「データ→その他のデータソース→データ接続ウィザード」を選択します。
データ接続ウィザードで、データソースの種類として「ODBC DSN」を選択し、ODBC接続の中でも先ほど設定したPostgreSQLのデータソースを選択します。
データソースの中のテーブルおよびビューの中から、ピボット作成に使用するものを選択します。ここでは、「注文情報」というテーブルを使用します。
最後に「完了」をクリックすると、「データのインポート」の方法の選択を求められます。今回はピボットテーブルを作成しますので、「ピボットテーブル レポート」を選択します。
空のピボットテーブルとレポートに使用するフィールド名が表示されますので、分析に必要な軸を行ラベル、列ラベル、値の各項目に追加します。(ここからは通常のExcelのピボットテーブルの作成と同様です)
以下の例は、行ラベル(縦軸)に顧客の地域、国を取り、列ラベル(横軸)に顧客の業界を設定し、注文数を値として作成したピボットテーブルです。
■まとめ
以上、今回はExcelからPostgreSQLにODBC接続してピボットテーブルを作成する方法をご紹介してきました。
Excelのピボットテーブルを使った分析はデータ分析の基本中の基本と言えます。すべてのデータをExcelに取り込んで分析作業をしようとすると、ファイルサイズが大きくなったり、Excelの扱えるデータ数の上限に当たったりしますが、バックエンドをデータベースにすることで、より手軽にデータ分析を行えるようになると思います。
データ分析に興味のある方は、ぜひ試してみていただければと思います。
では、また。
ExcelでMySQL,PostgreSQLなどのデータを取得/更新するなら、ExcelDBToolをお勧めします。
返信削除データ取得、更新、削除することだけではなく、複数のSQLを実行して、結果を
一括Excelの各シートに出力することもできます。データ作成の機能を使って、
氏名、住所、電話など60種類以上のダミーデータも作成できます。
作成したデータを直接DBに登録して、シート名とテーブル名が一致すれば、
一括で複数テーブルのデータもExcelに取得できます。
詳しくは下記サイトをご参照ください。
http://www.superdbtool.com
MySQL ODBC 5.2のインストールでエラーが出た場合、下記の記事をご参考ください。
http://superdbtool.blog.jp/archives/922402.html