〜Tableau〜 LOD EXCLUDE関数の理解
INCLUDE関数に引き続きEXCLUDE関数につまづきました
今回も中々参考書の目的が理解できず、今回は丸っぽ参考サイトの過程をお借りして
自分なりに作成してみました
目的:カテゴリに対する売上割合を表示する
とします
サブカテゴリを切り口に売上を表示します
表示をシンプルにするため、フィルタにカテゴリを入れて家具で絞っています
割合を出したいので分母は「カテゴリの合計金額」なのですが
すでに切り口としてサブカテゴリを置いてしまっているので、SUM[売上]を置いて割合を出してもサブカテゴリ毎の金額となるので100%となってしまいます
ここで使用できるのがEXCLUDE関数のようで
ディメンションを指定することでそのディメンションを除外することができ、一つ上の粒度で算出できるようです
なので以下のように計算フィールドを作成しました
じゃあエラーが。。。
集計:SUM([売上]) なのでEXCLUDEは非集計になるようです
分からなかったので参考サイトで調べてみると
EXCLUDEを集計関数として扱いたいのであれば、
AGG({ EXCLUDE [ビュー上の除外したいディメンション1](,[ビュー上の除外したいディメンション2]…) : [集計式] })
と集計関数でEXCLUDE式を囲ってください。
AGGには(MIN/MAX/SUM/ATTR)のいずれかを入れてください。
とあったので囲ってみたらOKになりました
集計になったんだろうなと理解
参考サイトにはこうも書いてあって
どの集計関数であっても結果は変わらない
確かにSUM[売上]で出力されるのは集計された1値だと理解しているのでそうなるとは思うんだけど
そもそもEXCLUDE関数を使用した時になぜ非集計扱いとなるのかが理解できないなー
ここはTableau仕様なのだと踏ん切りつけて先に進みます
そしてピルをラベルに配置すると
正解っぽいのが出たぞ
ただ合ってるか分からないので、ここにカテゴリ毎の売上金額を出力したいと
欲が出たのでFIXED関数使えば良いと思い以下の計算フィールドを作成・配置
表示もできた
テーブルで計算すると
13919786/81166998=0.17149...
なので合ってそうです
これで目的達成だし、理解できたかなと
ただ2つ気になったのでこれを試して終わろうと思い
1. FIXED関数でどうにかなりそう
カテゴリ売上の表示を作成した時にあれ?と思い、やってみることに
やっぱりできた
ここでの気づきはFIXED関数もEXCLUDE関数同様に非集計となってしまうのでAGGを使用しなければならないこと
参考書ではここに引っ掛からなかったのでなんでだろうと再度読み直したら有無を言わさずにATTRを計算フィールドに記載していた もっと能動的に読書しないとと反省
2. 表計算でどうにかなりそう
これもできた
ここでの気づきは表計算の理解がまだ乏しいこと
計算タイプも次を使用して計算もたくさん選択肢があるがぼやっとしか理解できないしそもそも深く理解しようとしたことがなかった
ここ理解すれば関数使わずともいろんなことができそうだなと
関数使用も良いのだけどできる限りシンプルにすることを考えるとTableauの標準機能を使いこなしたほうが良いかなと思うのでここも勉強しようと思いました
また、別でまとめようと思います
今日はここまでー
参考書
www.amazon.co.jp
参考サイト
ex-ture.com