■PowerPivotとExcelで実現する多次元データベース分析
BI (Business Intelligence) という言葉を、IT関係のコンテンツで目にしたとき、皆さんはどのような印象をもたれるでしょう?
私たちが日々の業務で生成する膨大なデータは、Microsoft SQL ServerやAzureのデータベース、Accessのaccdbファイルや、Excelのワークブック、はてはCSVやテキストファイルなど、様々な形で蓄積されていきます。
これらのビッグデータを、ただ蓄積するだけでなく、どのように分析し、経営方針やマーケティング戦略へと活用するかに、注目が集まっています。これこそが、まさにBIの本質といえるでしょう。
このように、大量のデータから価値のある情報を収集・分析し、問題解決に利用する手法をOLAP(Online Analytical Processing)と呼びます。私たちが、ビッグデータを解析し、このOLAPを実現するためには、BIツールと呼ばれる、フロントエンドのツールが必須です。
そして多くのビジネスワーカーにとって、最も使い慣れたフロントエンドのツールは、Microsoft Excelでしょう。この表計算ソフトの中で、すべてのOLAPを実現することができれば、それがBIにおける最良の選択肢となります。
ただご存知のように、Excelのワークシートに取り込めるデータ量には限界があり、BIツールとして利用するには、おのずと制限がありました。
|
行数 |
列数 |
Excel 2003まで |
65,536 |
256 |
Excel 2007より |
1,048,576 |
16,384 |
PowerPivotは、このExcelのもつ、行数・列数の限界をはるかに超える機能を提供します。100万件をゆうに超えるビッグデータでも、高速かつ安定した動作で処理を行うことができます。
さらに、様々なデータソース、SQL ServerやAccessデータベース、OracleやSybase、ExcelブックやCSVファイル、さらにはODBCドライバーが提供されているあらゆるデータソースに接続し、それらを多次元データベースとして構築、データ分析を行うことが可能です。
しかも特筆すべきは、これらを実現するために、システム管理者やSEの手を煩わせる必要が無く、エンドユーザーが自らの手によって作業、分析が行えるという点です。Microsoftはこれを、Self-Service BI(セルフサービスBI)と呼び、EUC(End User Computing)をさらに発展させるムーブメントとして、推奨しています。
■なぜPowerPivotなら、セルフサービスBIが可能になるのか?
PowerPivotはExcel 2013、2016では、COMアドインの機能として提供されています。つまり、Excelをセットアップさえすれば、簡単な操作ですぐに利用を始めることができます。(Excel 2010では、アドインをダウンロードすることで使用可能です)
ここではExcel 2013を例にとって、解説していきましょう。[開発]タブを選択、[COMアドイン]をクリックします。

表示されたダイアログボックスの中から、[PowerPivot]を選択し、[OK]をクリックします。

リボンUIに[POWERPIVOT]タブが追加されるので選択、[管理]をクリックします。

ここで表示されるウィンドウが、PowerPivotのウィンドウになります。

まずはこの中に、分析の対象となるデータを取り込むことで、ピボットテーブルを利用した、分析作業が可能になります。
ここで1つ疑問が発生します。これらPowerPivotの情報は、いったいどこに保存されるのでしょう?
PowerPivotに関する情報は、Excelブックのなかの、PowerPivot Custom XML Partの中に、PowerPivot関連のオブジェクトとして保存されます。ですので分析結果のブックを、他ユーザーに配布したりすることも可能です。
では早速、PowerPivotにデータを取り込んでみましょう。ここでは簡単なサンプルとして、ネットワーク上に保存されたAccessデータベースから、2つのテーブルを取り込み、ピボットテーブルとピボットグラフで分析してみます。
PowerPivotウィンドウの[ホーム]タブ、[データベース]から[Accessから]をクリックします。

[テーブルのインポートウィザード]が表示されるので、[参照]ボタンをクリックして、対象となるaccdbファイルを選択、[次へ]をクリックします。

[インポートするデータをテーブルとビューの一覧から選択する]を選択して、[次へ]をクリックします。

対象となるテーブルを選択し、[完了]をクリックします。

インポートの結果が表示されるので、[閉じる]をクリックして取込作業を完了します。

PowerPivotウィンドウに、2つのテーブルが取り込まれました。

すぐに分析作業に移ってもいいのですが、今回はまず、この2つのテーブルにリレーションシップを設定しておきます。
[ホーム]タブ、[ダイアグラムビュー]をクリックします。画面に取り込んだ2つのテーブル「売上TBL」と「支店MST」が表示されます。「売上TBL」の「Siten」フィールドを「支店MST」の「Siten」フィールドにドラッグアンドドロップします。

すると、両フィールドを結ぶ矢印線が作成され、リレーションシップが設定されました。

矢印線をダブルクリックすることで、リレーションシップを編集することもできます。

Accessを使ったことがあるユーザーにとっては、おなじみの操作ですね。
リレーションシップを設定したら、[ホーム]タブ、[データビュー]をクリックして、先ほどの画面に戻ります。
ここでもう1つ、作業をしておきましょう。分析画面では、月ごとの売上データが見たいとします。売上月を示すフィールドを追加しておきましょう。
「売上TBL」の「列の追加」列の下のセルを選択します。数式バーに次の数式を入力します。
=FORMAT([UriDate],"yyyy/mm") |

入力が終わると、追加した列のすべての行に、「年/月」の書式で売上月のデータが表示されます。このあたり、テーブルに数式を入力する操作と同じですね。
入力直後の列名は既定の列名が入力されていてわかりにくいです。列名を右クリックし、ショートカットメニューより、[列名の変更]をクリック、わかりやすい名前に変更してください。ここでは、「UriMonth」という名前に変更します。

それでは早速、ピボットテーブルを作成して分析作業に移りましょう。[ホーム]タブの[ピボットテーブル]をクリックしてください。
Excelの画面に戻ります。ピボットテーブルを作成する場所を問い合わせるダイアログボックスが表示されます。ここでは、既存のワークシートに作成することにします。

後は、通常のピボットテーブルと同じように操作できます。[ピボットテーブルのフィールド]で、レポートに追加するフィールドを設定します。ここでは、次のように設定しました。

せっかくなのでスライサーも挿入してみましょう。[分析]タブより[スライサー]をクリック、[スライサーの挿入]ダイアログボックスより、支店MSTの「Name」と売上TBLの「Bunrui」にチェックを入れ、[OK]をクリックします。

スライサーは、選択したフィールドを素早くフィルタリングできる大変便利な機能です。現在フィルタリングされている項目も、視覚的に確認できます。

さらに、ピボットグラフも挿入してみましょう。[分析]タブより[ピボットグラフ]をクリック、[グラフの挿入]ダイアログボックスより任意の種類のグラフを選択します。ここでは、[3-D縦棒]のグラフを挿入します。

データを視覚的に捉えることができ、分析作業がより容易になります。このように、いったんピボットテーブルを作成してしまえば、通常のExcelのピボットテーブルと同じように扱うことができます。今回はサンプルということで、少量のデータで操作しましたが、100万件を超えるデータでも、同様に操作することができます。
PowerPivotで簡単BI、いかがでしたでしょうか?
これまでは大量のデータを分析するために、事前の準備が不可欠でした。PowerPivotを使えば、データソースに対するアクセス権限を管理するだけで、ユーザーが自由に多次元データベースを構築し、ユーザーが望む分析作業を、自分自身の手で行うことが可能になります。これこそがまさに、セルフサービスBIです。
セルフサービスBIによって得られる分析結果はもちろんのこと、分析作業におけるスピードアップ、省力化は、競合の激しい現代の企業にとって大きなアドバンスをもたらします。
ぜひ皆さんのお仕事にも、PowerPivotの利用を検討してみてくださいね。
※ 今回使用したブック、DBは学習用サンプルファイルとして自由にダウンロードできます。
サンプルファイル (PowerPivotSample.zip
106KB)
|