![見出し画像](https://assets.st-note.com/production/uploads/images/93548749/rectangle_large_type_2_f021c46e69844f3cdef479aeed4294ca.png?width=1200)
Tableau難関との噂のLOD表現、あんま強ないぞ~??(EXCLUDE編)
まずは前回の記事から読んでいただけると、
コイツ(tomoakiさん)の肌感がわかり良いと思います。
今回はEXCLUDEについて話していきます。
例のごとく、今回も理解にあたって下記記事にお世話になりました。
◇EXCLUDE…それは”排除”の呪文…
集計の粒度をある程度自由度高く扱える関数で、
いったん中間的なテーブルによって集計するよというものでした。
そのなかでEXCLUDEとは、
「していされたディメンションをシートの中にあるディメンションから除外して集計すること」を指します。
◇EXCLUDE
{ EXCLUDE [ディメンション1],[ディメンション2]… : [集計式] }
今回下記のシートをイメージしてみましょう。
参考のVizはこちら
![](https://assets.st-note.com/img/1671322485059-FLqlTzdA7e.png)
ある学校の個別身長データベースです。
全体(10人分)の平均を見たい場合、下記のようなシートを作成する感じになり、無事平均が「166.5cm」とわかります。
![](https://assets.st-note.com/img/1671322969576-NmB4FTtMjQ.png?width=1200)
これをクラス別に切り分けた場合は下記のような感じ
![](https://assets.st-note.com/img/1671322980876-AVKCeV4B26.png?width=1200)
さて、このクラス別に出した身長の平均が、
全体の平均と比較したときにどのくらい差があるのでしょうか??
![](https://assets.st-note.com/img/1671323857118-VDDsHHlND5.png?width=1200)
こんな感じで作成。
先にいいますが、左側のグラフでEXCLUDEを使う意味はあんまりないと思ってます。
左側のグラフにおいては、
・棒グラフは個人の身長
・グレーの平均線がクラスの平均
・赤の線が学校全体の平均線になります。
左側で赤線(ガントチャート)をいれたのは、
二重軸で「EXCLUDE」を使いました。
まずは式をみてもらったほうが早いと思うので、EXCLUDEの式を見せます。
![](https://assets.st-note.com/img/1671324036570-WupsR0Mb5g.png)
こんな感じ、なぜEXCLUDEに「学年」「クラス」「名前」を入れているのか?
それは、当シート上に「学年」「クラス」「名前」があるから
除外させているためです。
![](https://assets.st-note.com/img/1671324155982-FPOKc49lhI.png?width=1200)
EXCLUDEは”排除”の呪文なので、
今回、中間フィールドを作成し、元のシートにある除外したい要素(ディメンション)だらけなので、
計算するにあたって排除してもらいます。
今回、3つすべて排除させたので、このAVG[身長]は、「全体の平均」を出したことになります。
例えば、他にも学年の平均で出したい時は、[クラス],[名前]のみ除外してもらえれば良いのですよ。
EXCLUDE『俺は元のシートに左右されずに集計していくぜ、ただな、FIXEDさんとの違いはある程度元のシートの状態に合わせて柔軟にやり方を変えられることだ。』
◇全体平均と個別の「差」を出す
右側のグラフにおける全体平均と個人の身長の差を出す件ですが、
こちらは計算フィールドをつかえばOK
sum([身長])-sum([(全体の平均を出すEXCLUDE)])
これをそのまま隣に置いておくことで、視覚的にも、各生徒がどれくらい平均から離れているのかがわかるのでGood.
![](https://assets.st-note.com/img/1671323857118-VDDsHHlND5.png?width=1200)
このあたりは感覚的に覚えていくほうが良いのかなと思っていて、
大事なのは、
①今グラフを表現しているワークシート
↓
②計算フィールドで作ったLODの中間テーブル
それぞれの関係性を理解して、
②でFIXEDを使うと固定される、INCLUDEは①と②両方考慮してくれる、EXCLUDEは①のなかから嫌なものだけ取り除いてくれること、それぞれを概念的に抑えていくと良いのかなと思っています。
ほんとに個人的にこの覚え方がよかっただけで、概念的すぎて伝わっている気がしないのですが、ご参考まで…。