スライサーが使えるウォーターフォール・チャートを作る
目標
ピボットテーブル、ピボットグラフはユーザーの操作で自由にレイアウト、集計・分析の組み合わせを変えられる極めて便利なレポートですが、欠点もあります。
● ユーザーの操作で変化してしまうので、レポートを固定できない
● ピボットグラフはすべてのレポートは使えない
一つ目の点は、社内の多くの人にレポートを送る場合などに、レイアウトが変更されて誤った数字が独り歩きする恐れがあります。
二つの目の点については、残念ながらピボットグラフではウォーターフォールチャート、ヒストグラム、散布図、サンバーストなどのレポートは使用できません。
今回はいったん作成したピボットテーブルをCUBE関数に変換して通常の集計表にすることでこれらの問題を解決します。ただし、ただ変換するのではなく、ピボットテーブルの最大の良さであるインタラクティブ性を残したまま変換します。
技術的なポイント
● データモデルからピボットテーブルを作る
● スライサーを追加する
● CUBE関数に変換する
● 関数化された表からグラフを作る
実践
サンプルデータとして拙著Excelパワーピボット 7つのステップでデータ集計・分析を「自動化」する本のデータモデルを使用します。
まずは挿入→ピボットテーブルからピボットテーブルを作ります。この時、このブックのデータモデルを使用するを選びます。
ピボットテーブルのレイアウトは以下のように設定します。今回はウォーターフォールチャートを作るので、列に会計年度を、値に売上前年差異を置きます。
合わせてスライサーも追加しておきます。今回は支店名を追加しました。
これでベースとなるピボットテーブルができました。ここまではいつも通りの手順です。
CUBE関数に変換する
次にこのピボットテーブルを通常のExcel集計表に変換します。ピボットテーブルにカーソルを置いたまま以下の手順を実行します。
ピボットテーブル分析(分析) → OLAPツール → 数式に変換
なお、ピボットテーブルを作るときににデータモデルを選択しなかった場合、グレーアウトされてクリックできません。
これで通常のExcel集計表ができました。
ここでスライサーのボタンをどれか選んでみて下さい。なんと集計表にスライサーのフィルターがかかります!
これでピボットテーブルの良さであるインタラクティブ性を残したまま、Excel集計表ができました。
値の入っているセルをクリックすると、CUBEVALUE関数がスライサーを参照していることが分かります。
なお、CUBEVALUEの引数は以下4つを参照しています。
① このブックのデータモデル "ThisWorkbookDataModel"
② メジャー $B4
③ フィルター C$3
④ スライサー スライサー_支店名51
さらに、$B4、C$3はそれぞれ、以下のCUBEMEMBER関数が設定されています。
$B4 =CUBEMEMBER("ThisWorkbookDataModel","[Measures].[売上前年差異]")
C$3 =CUBEMEMBER("ThisWorkbookDataModel","[カレンダー].[会計年度].&[2016]")
なお、C$3に直接「2016」と指定しても計算結果はエラーになります。CUBEMEMBERでフィルターを指定する必要があります。
ウォーターフォールチャートを作る
ここまで来たので、最後に仕上げを行います。
通常のExcel集計表になっているので、総計を削除し、2019年の列名をSUMに、値を以下の数式にします。
=SUM(C4:E4)
次に数字をカンマ区切りにし、以下のように範囲選択します。
挿入→グラフ→ウォーターフォールを選択します。
ウォーターフォールチャートが作られました。
最後の列であるSUMの棒グラフをダブルクリックします。
合計として設定にチェックを付けて出来上がりです。
これでスライサーと連動したウォーターフォールチャートができました。
通常のExcel集計表とピボットテーブル・ピボットグラフの両方の良いところ取りをするテクニックです。
参考文献
なお、今回紹介しましたピボットテーブルををCUBE関数に変換するテクニックは以下の本で知りました。
それにグラフを追加して面白いことができないかというのが今回の記事です。
Matt Allington さんの本には最初にPower Pivotの勉強を始めたときに大変お世話になりました。
Supercharge Excel: When You Learn to Write DAX for Power Pivot
- 作者: Matt Allington
- 出版社/メーカー: Holy Macro Books
- 発売日: 2018/06/01
- メディア: ペーパーバック
- この商品を含むブログを見る