Power BIでドリルダウンの階層によって値を切り替える方法

スポンサーリンク
全般

最近、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の方が色々と好きです。(個人の感想です。)

それでは!

コメント

タイトルとURLをコピーしました