7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

複数のテーブルをまとめて集計する方法

Last updated at Posted at 2019-05-26

先日業務で複数のテーブルを統合したうえで集計をしなければならない状況にがあったため、その時に用いた集計技術を備忘録として記録します。

この機能の使用が想定されるケースはとしては、以下のものが挙げられる。
ケース1.各支店毎のデータを全社的に統合し、集計する必要がある場合
ケース2.営業日数で集計されたデータを実日数に変換する必要がある場合 (OUTER JOIN)

1.サンプルデータセットとして、以下のようなデータセットを使用。(Kaggleにより提供されている「BlackFriday」のCSVデータセットを使用。データサイズは約24MB)
課題である複数テーブルを作成するために取得したデータセットをシートを2つに分割しています。
image.png

「BlackFriday1」シート
image.png

「BlackFriday2」シート
image.png

2.ピボットテーブルの「複数のワークシート範囲」機能を用いて、2つのテーブルを統合したうえで集計を行うことができます。
なお、この機能を使用する際には、「親列 (親フィールド)」というものを決定する前処理が必要であるため、先ずはその方法を紹介します。

3.「親列 (親フィールド)」とは、SQLでいうところのOUTER JOINでテーブルを統合する際の「ON 列1 = 列2」というような結合キーに相当するものだと類推的に考えると、理解しやすいかも知れません。
上で記載した必要な前処理とは、OUTER JOINの際に使用するキーをデータセットの先頭に移動することです。

4.今回は結合キーとして使用したいキーを「Product_ID」としたいと思います。「Product‗ID」が存在するB列をクリックし、セル範囲をアクティブにします。
「Shift」キーを押しながら、セルの境界線をクリックすると列をまとめて移動させることができます。
「親列 (親フィールド)」に設定するというのは、端的に表現すると、データセットの先頭列(A列)に移動することです。
この動作は集計の対象とするデータセットのすべてにおいて適用する必要があります。

image.png

5.「Alt → D → P」という順でキーボードを押下しピボットテーブルウィザードを立ち上げます。
(このピボットテーブルウィザードは「リボンにないコマンド」ですので、「ファイル」タブで設定をしない限りGUIに表示されません。そのため、コマンドを記憶、記録しておくことをお勧めします。)

今回の課題では「複数のワークシート範囲」と「ピボットテーブル」を選択したうえで、「次へ」を選択します。
image.png

6.「指定」を選択します。
image.png

7.次に結合集計の対象となるテーブルを選択します。少なくとも「範囲一覧」は必ず設定する必要があります。
※ページフィールド数の指定は、必須で指定すべき項目ではありませんが、設定をすることで、統合集計後にも「レポートフィルター」機能を用いて、各シート毎の集計結果を見ることができるようになります。

必要な項目を入力したら、「次へ」を選択します。
image.png

8.「完了」を選択します。
image.png

9.集計結果は次のようになります。
image.png

10.今回は「値」に指定した集計関数は「SUM (合計)」としましたが、通常どおりCOUNTやMAX、MINなど複数の集計関数を利用することができます。
image.png

注意点1:
以下のように、単一テーブルでの集計時のように個別フィールドへのアクセスが出来なくなります。
image.png

注意点2:
「複数のワークシート範囲」機能を用いた集計は各データセットの構造が同一でなくても実施することができますが、2つの条件を満たす必要があります。
第一に、集計の対象となるテーブルの全てに同一の結合キーが存在する必要がある点です。今回では「Product_ID」に相当します。(フィールド内のエンティティ(値)に関しては重複の有無は問いません。)
第二に、各テーブルに結合キーとそれ以外の何らかのフィールドが1つ以上必要です。

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?