3/13/2019

Excel。ピボットテーブルでAccessのクエリのように一つの表を作ってみる【Pivot table】

Excel。ピボットテーブルでAccessのクエリのように一つの表を作ってみる

<ピボットテーブル>

完成した表は、次のようなピボットテーブルの表です。

この表を作った元になるデータは次の表です。

大きな売上データなので、C列の旅行番号はあるのですが、旅行番号に該当する旅行名は、別の表で管理しています。

その表が、

で、この2つの表を使って、旅行先別の2019年の参加人数の合計とその合計金額の表を作成していきます。

旅行名などVLOOKUP関数を使ったりして追加してもいいのですが、最終的に『集計』しなければいけないので、Accessだったらクエリと演算フィールドを作ると簡単に作れますが、今回はピボットテーブルをつかってみようと思います。

【テーブルにしてテーブル名を設定】

あとで関わることなのですが、まず2つの表をそれぞれテーブルに設定して、テーブル名を設定していきます。

売上管理の表は、『T売上』というテーブル名を設定します。

もう一つの旅行リストは、『T旅行』というテーブル名を設定しました。

T売上テーブルをクリックして、挿入タブからピボットテーブルをクリックします。

複数のテーブルを分析するかどうかの「このデータをデータモデルに追加する」にチェックマークをつけて、OKボタンをクリックしましょう。

右側に表示された、ピボットテーブルのフィールドを「アクティブ」から「すべて」に変更すると、テーブルにしたすべてのリストが表示されます。

テーブルにしていないと、複数のテーブルを使うことができませんので、テーブルにしました。

【日付を年としてフィルターで使う】

日付フィールドをそのままフィルターのボックスにいれてしまうと、”日”でフィルターを設定することができるのですが、”年”にしたい場合、チェックマークをはずすのが面倒です。

なので、一度チェックを外してから、列か行フィールドのボックスにいれます。

年・四半期・月・日付でそれぞれグループ化されますので、「日付(年)」をフィルターのボックスに移動して、他のグループのチェックは外します。

2019年のみにチェックマークをつけておきます。

行のボックスに、
T旅行の「旅行番号」・「旅行名」・「金額」の順番で設定します。

このレイアウトでは、わかりにくいので、ピボットテーブルツールのデザインタブにある「レポートのレイアウト」から「表形式で表示」をクリックします。

レイアウトが表形式に変わったことが確認できました。

そして、いよいよ、T売上テーブルの人数フィールドを値ボックスに設定します。

すると、「テーブル間のリレーションシップが必要である可能性があります。」とメッセージが表示されますので、作成ボタンをクリックします。

リレーションシップの作成ダイアログボックスが表示されます。

【Excel2013からリレーションシップが登場】

2つの表には幸い旅行番号という共通した列名が存在しています。

そこで、Excel2013からAccessのようにリレーションシップ機能が追加されました。

リレーションシップを設定することで、複数テーブルのフィールドを使うことが可能になります。
このリレーションシップもテーブルにしておく必要があります。

テーブルのボックスには、T売上を設定します。

このテーブルは、”多”(何度も旅行番号が登場するテーブル)を設定します。
関連テーブルのボックスには、T旅行を設定します。
このテーブルは、”一”(テーブル内に重複していない)というのがポイントになります。

OKボタンをクリックします。

ピボットテーブルは、次のようになりました。

折角、金額と人数のフィールドがありますので、合計金額を算出してみましょう。

Accessのように演算フィールドを作れませんので、E4に=C4*D4と入力します。

セルをクリックして数式を作ってしまうと、GETPIVOTDATA関数で数式を作ってしまって、オートフィルで数式をコピーするのが大変になってしまいますので、注意が必要です。

あとは、総計をオートSUMボタンで算出して、列幅や、書式を整えて完成ですね。