Tableauを利用したUser Filter Tips
業務でTableauを利用した際にちょっとひねった技を使う必要があったのでその備忘録として
課題1 自部署内の人別の売り上げを比較するデータを見せたい
通常のTableauであればFilterをユーザーに設定してもらって見せるというのが一般的な流れになると思います。ただ、今回の場合はユーザーがログインした段階で見せたいというものになります。
前提条件 組織のマスタ情報がある
組織の階層を持ったマスター情報があるということが前提になります。
データイメージ
row, 部門, 部署, 人
1 Sales, 第一, 山田
2 Sales, 第一, 田中
3 Sales, 第一, 中田
4 Sales, 第二, 佐藤
5 Sales, 第二, 松井
それとTableauServerを利用した環境になります。
課題1の動き
山田さんでログインした際に山田、田中、中田のデータを取得したい
解決策
とりあえず誰でログインしたかは
USERNAME()
で取得できます。
次に新しいDimension [User_Flag]を作成します。
[User_Flag]
CASE [人] == USERNAME()
THEN 1
ELSE 0
END
[User_Flag]にはログインした人に1それ以外には0が入ります。なので山田さんでログインすれば
row, 部門, 部署, 人, [User_Flag]
1 Sales, 第一, 山田, 1
2 Sales, 第一, 田中, 0
3 Sales, 第一, 中田, 0
4 Sales, 第二, 佐藤, 0
5 Sales, 第二, 松井, 0
次に[Same_Org] という同じ部署なら1、それ以外なら0を返すDimenstionを作成します。
ここで利用するのがFIXED関数になります。
下記のリンクとかわかりやすいです。
https://ex-ture.com/blog/2017/12/04/%E5%88%86%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%84lod-fixed%E7%B7%A8/
[Same_Org]
{FIXED [部門], [部署]: MAX([User_Flag])}
[部門], [部署]が同一のデータの中から[User_Flag]の最大値を取得します。
そのため、Sales 第一の人であれば1 それ以外の部署であれば0が値として入ります。
row, 部門, 部署, 人, [User_Flag], [Same_Org]
1 Sales, 第一, 山田, 1, 1
2 Sales, 第一, 田中, 0, 1
3 Sales, 第一, 中田, 0, 1
4 Sales, 第二, 佐藤, 0, 0
5 Sales, 第二, 松井, 0, 0
フィルター条件をSame_Org=1にすることでほしいデータが取得できます。
以上
Author And Source
この問題について(Tableauを利用したUser Filter Tips), 我々は、より多くの情報をここで見つけました https://qiita.com/tcat_bstar/items/78cc5d9741c278bae438著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .