Excelで本格的なデータ分析が出来る!? プロが教えるPower BI入門
読者の皆様はExcelを「使いこなして」いますか? 普段から使っていても意外に使いこなせていない人も多いのではないでしょうか? 広く使われているExcelでも、使い方によってはかなり高度な分析もできるようなります。仕事でちょっとした分析が必要なこともあると思います。また場合によっては、朝までに分析をしたい! ということもあるでしょう。実際に、昨今のデータ分析指向のブームに乗って、Excelをツールに採用するケースが増えています。この状況を肌感覚で感じられている方もいるでしょう。
今回は身近なExcelを利用してデータの統計を行い、結果を可視化するPower BIというサービスをご紹介します。Power BIは、Excelのアドインとして機能するBI(Business Intelligence)ツールです。
はじめに、広く行われている一般的なデータ処理の手順を示します。
- データをワークシートに作成する。
- ワークシートのデータの範囲を指定して、ピボットテーブルを作成し、データの統計を行う。
- ワークシートのデータの範囲を指定して、ピボットグラフを作成し、データを可視化する。
このようなExcel単体での分析処理では、処理対象のデータがワークシートの範囲に限られるため、統計分析結果の活用も限られたものになります。
Power BIの4つの基本機能であるPower Query、Power Pivot、Power View、Power Mapを利用することで、上記の作業内容を次のように拡大できます。
- Power Queryを利用することで、Excelブック内のデータだけでなく、CSVなどの外部ファイル、Webページ、XMLやJSON 形式のデータ、データベースで管理するデータなどを、テーブルとしてExcelに取り込む
- Power Pivotを利用することで、テーブル間のリレーションを定義して、テーブル内のフィールドを自由に選択して、ピボットテーブルやピボットグラフが作成できる。
- Power Viewを利用することで、インタラクティブに変化する統計結果のレポートを作成できる(図1)。さらに、Power Mapを利用することで、データをリアルな地図にマッピングして可視化できる(図2)。
さらにOffice 365との連携により、成果物の共有化や、オンライン上でのレポート作成などのサービスが利用可能になります。
Power BIの基本機能である Power Query、Power Pivot、Power View、Power Mapの使用方法の概略について、実例を交えて紹介します。
データを集めるPower Query
Power Queryは、分析対象のデータを「集める」機能を提供するものです。検索キーワードを使ってインターネット上のデータを探したり、CSVやXML、JSONなどいろいろなフォーマットのデータを取り込んだり、データベースにアクセスしてデータを読み込んだりと、様々なデータの入手が可能です。取り込んだデータは、テーブルという形式で管理します。
今回は、2種類のデータを扱います。1つ目は「政府統計の総合窓口」からダウンロードした、1975年から2012年までの都道府県別の男女別人口推移データです。CSV形式でダウンロードしたものを、ExcelのVBAマクロを用いて、次の形式に変換しました(図3)。
これをPower Queryを用いてテーブルとして取り込みます。テーブル名は「人口統計」とします。
2つ目は国土交通省国土地理院が公開する都道府県庁の経度・緯度情報です。Power Queryを使って、次のようにWeb ページから直接テーブルとして取り込みます。こちらのテーブル名は「都道府県位置」とします(図4)。
都道府県位置テーブルの見出し行の直後の1行は不要です。また、都道府県名の文字列中に空白文字があったり、「県」「府」「都」が省略されたりしています。さらに、東経、北緯が度、分、秒に分かれています(図5)。このようなデータを適切な形式に変換するには、Power Queryの機能である「クエリエディター」を利用します。クエリエディターを用いて、テーブルの内容を図6のように変更しました。
データ同士を関連付けするPower Pivot
次にPower Pivotを利用して、2つのテーブル間の関係を定義します。これを「リレーションシップ」と呼びます。Power Pivotで処理するデータをデータモデルに追加することで、PowerPivotウィンドウでの管理が可能になります。Power Pivotウィンドウ上で、リレーションシップを定義します。今回は、人口統計テーブルの地域名フィールドと、都道府県位置テーブルの都道府県フィールドを関連付けます(図7)。