Tableauの超基本 #2:集計とは?
Tableauの使い方を調べていくと、いろいろなところで「集計」「非集計」という単語が出てくると思います。
大量のデータを素早く理解する(or だれかに理解させる)ために、必ず使われる機能です。
ここでは、集計とは?を確認したうえで、集計の単位(粒度)、集計計算と非集計計算の違い の2つを見ていこうと思います
集計とは:複数行のデータの集まりから、「代表」を作る
集計は、Tableauに限らず、データを扱う時に頻繁に行われています。
いちばんわかりやすいのは「合計」でしょうか。
ここでは「複数行のデータをまとめる(束ねる)とき、その代表になる値を1個決める」という言い方にします。
合計のほかにも、平均、最大値など、集計の方法は色々あります
Tableauでも、何かメジャーを列や行に置いたとき、1本の棒グラフになりますが、元データが1行しかない訳ではないですよね。
裏側で、Tableauがたくさんの行データを読み、合計を計算・表示してくれています。(どんな集計をしたかも表示されています)
この「集計」の概念を踏まえ、
ここからは基本的なTableauの仕組みを2点押さえたいと思います。
a ビューに表示される集計単位(viz LOD = 見た目の粒度)はどうきまるか
b 計算と集計の関連性(集計 vs 非集計)
a. 粒度の話:データのまとまりをどんな単位にするか?Tableauで表示されている単位 viz LOD
では、まず、
「集計」をどの単位で行うか?
言い換えると、データのまとまりを何ごとに設定するか? を考えることにします。
さきほどの売上棒グラフ1本は、全体の合計でしたが、これを何かの「切り口」で分けると、それぞれの集計結果が表示されます
「#1 行と列」では、出荷モードを列に入れて棒グラフを分割ました。
これは、集計を出荷モードごとに行った(集計単位に出荷モードを追加した)ことになります
「出荷モード」集計結果の分割は列以外でも分けることができます。
「マーク」のなかにある、色・サイズ・ラベル・詳細 に入れると、それぞれ違った表現方法(視覚属性)ですが、同様に集計単位をコントロールすることができます。
このように、元の行データを集計した結果を区切る単位をコントロールできる場所がいくつかあります。(列・行・色・サイズ・ラベル・詳細)
これらによって決められた集計単位(ビューでの集計単位)のことを、見た目の粒度と呼ぶことがあります。(viz LOD とも言われます)
* LOD = Level Of Details
b. SUMを計算? 計算したものをSUM?
「集計 vs 非集計」の計算
次に、
元データの値から計算を行うときに気にしなくてはいけない、
集計・非集計の考え方について触れます。
ここでは、売上と数量から平均単価を計算する という例で考えてみます
(売上÷数量=平均単価)
1. 非集計=元データの行ごとに計算
計算フィールドでこのように割り算を書くと、各行で計算を行います。
それぞれの行で割り算された結果を持ちます。(行ごとデータなので、集計することもできます)
2. 全体の平均は?= 集計計算
では、製品、店舗の切り口を外し、全体の平均を出してみます。
が、1の「行ごと計算」を集計しても、期待した答えが得られません
感覚的に、 320円 ÷ 8個 =40 と求めるのが正しそうです。
つまり合計の割り算(加重平均)が必要になりますよね。ここで集計計算が登場します。
言い方を変えると、集計結果を先に作ってから計算をさせることになります。
この場合、Tableauが何をしているか、以下3点を覚えておくとよいです
- 集計の方法は関数で決める (SUM, AVG, MAX, など )
- 集計関数が入るので、行ごとではなく、集計単位での計算になる
- 集計される単位は、 a で説明した「見た目の粒度 viz LOD」に従う
a+b 組み合わせて使う:全体の平均を切り分けていく
集計計算は見た目の粒度に従うので、切り口を追加すると、
切り分けられた集計結果それぞれを割り算していきます
エラー:1個の計算式に集計と非集計は同居できない
最後に、冒頭に紹介した、エラーが出るケースを思い出してみましょう
「集計と非集計は混在できない」と言われるのですが、最初いまいちピンときませんでした。
この集計の仕組みを踏まえると、集計されたカタマリの相手として1行のデータを特定できないからエラーになると考えています。
違う見方をすると、Tableauは同じ粒度の集計結果で計算していることになりますね。
ちなみに、集計を集計するのもダメですね。
まとめ
おさらいするとこんな感じでしょうか。
集計:複数データを束ねて代表の値を決めること
集計単位はビュー上の「見た目粒度」で決まる
行ごとの計算(非集計計算)と、集計してから計算(集計計算)がある
粒度の違うものを計算しようとするとエラーになる(集計と非集計の混在)
関連するトピック
ディメンション(切り口)とメジャー(値) / 連続と不連続
LOD計算(粒度違い計算)
表計算(Table calculation)
シンプルと言いつつ、書き出してみると結構な量でした笑
集計自体は難しくないのですが、発展させると徐々に複雑になります
集計・計算の粒度のイメージをしっかりつかんで応用できると出来ることが拡がると思います。
というわけで、
最後まで読んでいただきありがとうございました!