まずはデータモデルを作らないと始まらない

説明をするにあたって、何かモデルがないと分かりにくいです。
ただ、データモデルを作るのは非常に面倒くさい。
それに、ファイルをダウンロードしてもらうためには、ファイル共有サイトを用意しないといけないので、これも大変。

ならば、他の人がピボットテーブルの練習用に作成したサンプルデータでも借用しましょうかね…いやいや、そんなことしたら違う問題が出てきそうです。



今回のまとめ

今回は先にまとめを書いておきます。

  • サンプルとするテーブルは作るのが大変なので、どこかで調達、ないしは簡単なもので良いので作ってください

    • このマガジンではサンプルデータとして「販売店」、「商品」、「数量」および「販売価格」からなるテーブルを用意しましたので、これを使って説明します。

    • さらに、使用するメジャーは(ピボットテーブルで一度集計すると使用できる「暗黙のメジャー」である)「合計_/_数量」、「カウント_/ _商品」(※「_」は、実際は半角スペース)などを使います。

  • 取り込んだテーブルに最初につく名前は取り込み方で違います。

  • 実はフィルタやスライサーを考えなければ、ピボットテーブルでできる表はそこから数式に変換できます。

閑話休題。では、続きをどうぞ。


ならば、適当なものをでってあげよう

それならば、極めて雑にデータを自作すればいいんです。
そうですね…例えば、こんな感じ。

雑なサンプルテーブル

こんなデータなら簡単にできますし、誰でもできそうです。
なお、テーブルを作成したら、テーブル名を付けておくといいです。
「テーブル1」では使いにくいこともあるでしょうし。
(ただ、味気ないんですよね…これ。)

・・・ということで

サンプルデータを作ってみました。
基本的には上と同じ考え方で作っていますので、かなり雑なデータです。

日付データを入れるかどうか

あと、日付項目を入れるかどうかが問題なんですが、日付を入れるとBIツールのようなことができるので楽しいのですが、ちょっとだけ高度になりますので、自作のサンプルを作成される方は日付項目は入れなくていいです。
ただ、ここで使うサンプルについては、体裁が気になるので入れてあります。

テーブルをデータモデルに取り込む

テーブルを用意したら、これをPower Pivotのデータモデルに取り込みます。

データモデルの取り込み方は2パターン

データモデルにテーブルのデータを取り込む方法はいくつかありますが、大きく分けて次の2つのルートがあります。

  • Power Pivotのデータモデルに直接取り込む

  • Power Queryに送ってから、データモデルに取り込む

「Power Queryに送るって、手間だな」とも思うのですが、Power Queryを使うとデータの加工などができるので、そういう必要があるデータを使うときはPower Query経由で取り込むのも一つの手です。
お好きな方で取り込んでください。

取り込まれたテーブルの確認

取り込み処理が終わったら、Power Pivotのウィンドウを開いて、テーブルが取り込まれていることを確認しましょう。

取り込んだテーブルの名前を確認

取り込まれたテーブルはExcel本体のワークシート名がタブの形であるのと同様に、テーブル名の書かれたタブが表示されているはずです。
このテーブル名、取り込み方によってつく名前と修正のやりやすさが違います。

  • Power Pivotに直接取り込んだ場合は、取り込み元のワークシート上のテーブルの名前と同じものがつきます。名前の変更もPower Pivot上から可能です。

  • Power Query経由で取り込んだ場合は、Power Queryのクエリ名がテーブル名となります。Power Pivot上での変更はできず、クエリ名を変更することで新しいテーブルとして取り込むことが可能です。(本当は違うのかもしれませんが、こう思っておくとその後の作業し忘れを防止できます。)

取り込み方によっては、または作業が進んでからの修正はけっこう大変です。名前付けは慎重に。

ピボットテーブルを作ってみる

では、ものは試しに、このデータモデル上のテーブルを使ってワークシート上にピボットテーブルを作ってみましょう。

ピボットテーブルの作り方は2とおり

データモデルをソースとしたワークシート上にピボットテーブルを作る方法は2とおりあります。

  • Power Pivotウィンドウのホームリボンから「ピボットテーブル」ボタンを押す方法

  • Excel本体の「挿入」リボンにある「ピボットテーブル」ボタンのメニューから「デーらモデル…」を選択する。

    • バージョンによっては、ボタンを押すと分析するデータの選択のラジオボタンの1つに「このブックのデータモデルを使用する」という選択肢がありますので、それを選択しても可。

集計は普通のピボットテーブルと同じ

とりあえず「販売価格」フィールドの合計を計算してみましょう。
右に出てくるピボットテーブルペインの値フィールドに「販売価格」をドラッグして…できました!(…よね?)
では、ピボットテーブルペインの行フィールドに「販売店」をドラッグして販売店の構成要素ごとの合計を表示しましょう。

さらに、分類1のそれぞれの構成要素が幾つのレコードに含まれているか集計しましょう。
ピボットテーブルペインの値フィールドにある「販売価格」を右クリックして「プロパティ」を選択して、集計方法を「カウント」にします。
ここまでは、普通のピボットテーブルと全く同じですね。

実は…数式にはすぐできるんです。しかし…

今作ったピボットテーブルですが、これを数式にするのは実は簡単です。

「ピボットテーブル分析」リボンの「計算方法」グループの中に「OLAPツール」をクリックすると「数式に変換」という項目が出てきます。これを選択すると…なんと数式に置き換わります。

…「なんだ、これを使えばいいんだ」と思った方、ちょっと待ってください。

実はフィルタやスライサーが…

とりあえず、今作った数式化した元ピボットテーブルは残しておきます。
先ほどのピボットテーブルをもう一度作成して、今度はピボットテーブルペインのフィルタフィールドに「分類2」を追加して、フィルターをかけてみましょう。
フィルター、かかってますね?

そして、「OLAPツール」の「数式に変換」を実行すると…
あれ、フィルターの部分が残っています。集計結果の数値は…変換前と同じですね。
では数式は……「フィルター」なんて名前で指定できるんですね〜これ……って、それをどう書くかを知りたいのにこれじゃわからんって。

残念ながら、書き方を教えてくれません。
これは、スライサーでも同じことが起こります。

ということで、簡単には見逃してはくれないのでした。

おまけ:サンプルデータについて

サンプルデータの内容は、「ある店における2023年4月の果物の売り上げデータ」という体裁のデータとなっています。
データの内容は次のとおりです。

  • 番号:1からの連番を振ってあります。

  • 日付:「売上が発生した日付」という体裁でつけたデータです。

  • 販売店:分類に使うデータです。東京23区に池袋、新宿、渋谷の3店舗、東京都多摩地区に立川、八王子の2店舗がある設定です。どこだか知りたい方は山手線と中央線で検索してください。

  • 商品:分類に使うデータその2です。果実としてりんご、みかん、ぶどうの3種類、果実的野菜としてスイカとメロンの2種類の5品目です。

  • 数量:集計データその1です。その名の通り、その日に売り上げた数量という設定です。

  • 販売価格:集計データその2です。その商品のその日の売上高という設定です。単純に「設定単価に数量を掛けただけ」のお手軽作成です。

ちなみに、作り方は上の説明のとおりで、単純にRANDBETWEEN関数で乱数を作って、対応する名前に置き換えただけです。

この記事が気に入ったらサポートをしてみませんか?