最近、TableauとPower BIを比較してまとめるという新卒みたいな仕事をしています。
その中で、「ドリルダウンで値を切り替えることはできないのか」という話が上がりました。
調べてみるとSWITCH関数を使うとできるとのことで、今回はその方法を簡単にまとめたいと思います。
結論: Switch関数を使うとできる(ただし課題あり)
値 = SWITCH ( TRUE(), ISFILTERED( *指定の階層の項目名*, *指定の階層で値として出したい項目*, *それ以外の階層で値として出したい項目*))
解説
例としてマトリックステーブルの場合を説明します。
行には
- クエリAのA列
- クエリAのB列
- クエリAのC列
という3つの値が(A→Cの方向にドリルダウン)、
列には
- クエリAのD列
という1つの値が(実際は何個でもいいです)設定されているとします。
ここで、マトリクスの”値”として表示したい値を、通常はクエリAのX、ドリルダウンして行がCのレベルまで表示された時に出したい値をクエリAのYだとします。
このように表示が切り替わって表示される列は、Switch関数を使った「メジャー」を新規作成する必要があります。
例の場合のメジャーを作成するDAX式は
サンプルメジャー = SWITCH ( TRUE(), ISFILTERED( 'クエリA'[C] ), SUM( 'クエリA'[Y] ), SUM( 'クエリA'[X] ))
となります。
なので、この”サンプルメジャー”をマトリクスの値として設定すると、ドリルダウンする前にはクエリAの[X]が表示され、ドリルダウンしてクエリAのCが行に表示されたときはクエリAの[Y]が表示されるようになります。
デメリットあり
実はこの方法にはデメリットがあります。(見つかっていないだけかも)
表示する値を切り替えることができますが、この新規作成したメジャーに対する書式設定は1つしか設定できません。
もし例えばドリルダウンする前の値が「パーセント」で、ドリルダウンして表示させたい値が「通貨」だったりすると、通貨がパーセント解釈されて表示されてしまいます。
書式設定もSWITCH関数を使って切り替えることができたら…と思いますが、現状見つかっておりません。
そこは注意して使いましょう。
まとめ
Tableauの方が色々と好きです。(個人の感想です。)
それでは!
コメント