見出し画像

Tableau難関との噂のLOD表現、あんま強ないぞ~??(EXCLUDE編)

まずは前回の記事から読んでいただけると、
コイツ(tomoakiさん)の肌感がわかり良いと思います。

今回はEXCLUDEについて話していきます。

例のごとく、今回も理解にあたって下記記事にお世話になりました。


◇EXCLUDE…それは”排除”の呪文…

集計の粒度をある程度自由度高く扱える関数で、
いったん中間的なテーブルによって集計するよというものでした。

そのなかでEXCLUDEとは、
「していされたディメンションをシートの中にあるディメンションから除外して集計すること」を指します。

◇EXCLUDE
{ EXCLUDE [ディメンション1],[ディメンション2]… : [集計式] }

今回下記のシートをイメージしてみましょう。

参考のVizはこちら


ある学校の個別身長データベースです。

全体(10人分)の平均を見たい場合、下記のようなシートを作成する感じになり、無事平均が「166.5cm」とわかります。

これをクラス別に切り分けた場合は下記のような感じ


さて、このクラス別に出した身長の平均が、
全体の平均と比較したときにどのくらい差があるのでしょうか??

こんな感じで作成。
先にいいますが、左側のグラフでEXCLUDEを使う意味はあんまりないと思ってます。

左側のグラフにおいては、
・棒グラフは個人の身長
・グレーの平均線がクラスの平均
・赤の線が学校全体の平均線になります。

左側で赤線(ガントチャート)をいれたのは、
二重軸で「EXCLUDE」を使いました。
まずは式をみてもらったほうが早いと思うので、EXCLUDEの式を見せます。

こんな感じ、なぜEXCLUDEに「学年」「クラス」「名前」を入れているのか?
それは、当シート上に「学年」「クラス」「名前」があるから
除外させているためです。

EXCLUDEは”排除”の呪文なので、
今回、中間フィールドを作成し、元のシートにある除外したい要素(ディメンション)だらけなので、
計算するにあたって排除してもらいます。
今回、3つすべて排除させたので、このAVG[身長]は、「全体の平均」を出したことになります。

例えば、他にも学年の平均で出したい時は、[クラス],[名前]のみ除外してもらえれば良いのですよ。

EXCLUDE『俺は元のシートに左右されずに集計していくぜ、ただな、FIXEDさんとの違いはある程度元のシートの状態に合わせて柔軟にやり方を変えられることだ。』

◇全体平均と個別の「差」を出す

右側のグラフにおける全体平均と個人の身長の差を出す件ですが、
こちらは計算フィールドをつかえばOK

sum([身長])-sum([(全体の平均を出すEXCLUDE)])

これをそのまま隣に置いておくことで、視覚的にも、各生徒がどれくらい平均から離れているのかがわかるのでGood.


このあたりは感覚的に覚えていくほうが良いのかなと思っていて、
大事なのは、

①今グラフを表現しているワークシート

②計算フィールドで作ったLODの中間テーブル

それぞれの関係性を理解して、
②でFIXEDを使うと固定される、INCLUDEは①と②両方考慮してくれる、EXCLUDEは①のなかから嫌なものだけ取り除いてくれること、それぞれを概念的に抑えていくと良いのかなと思っています。

ほんとに個人的にこの覚え方がよかっただけで、概念的すぎて伝わっている気がしないのですが、ご参考まで…。

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