しばらく山とランは遠のいています

仕事、そしてコロナの関係でしばらく山やランからは遠ざかっています。来年の春から復帰できるようそろそろ運動再開していきたいと思います。ちなみに今、BIツールのPower BIが半分趣味になって、完全な運動不足になっています。20201020

2022年7月12日火曜日

【Power BI】一つのDAX式内に中間テーブルを作るときのコツ

ずっと悩んでいたことがあります。
Power BIで、DAX式を書くときに、Var関数を使ってDAX式をステップに細かく分けて記述する方法はとても便利で愛用しています。これを利用して一つのDAX式内で中間テーブルを作って段階的に処理をして計算するととても分かりやすいのですが、どうも思うように中間テーブルの列指定ができませんでした。

具体的には以下です。

論文指標_合計3 =
Var TempTable = SUMMARIZE('論文リスト'[論文指標],"最大値",MAX('論文リスト'[論文指標]))
return CALCULATE(SUM('TempTable'[最大値]),ALLSELECTED('TempTable'[論文]))
/*  変数で設定した論文に列指定をする方法がなく、エラーになる */

メジャー内で一時的に宣言した変数(中間テーブル)の生成後に、それに対するフィルターやコンテキストを反映させることについては、現状制限があるということがわかりました。コンテキストを認識できず列を指定できないそうです。

これを回避するには、中間テーブルを作成する段階で、列を指定して必要なフィルタをかけてしまい、次に続く式ではフィルタをかけないことだそうです。

論文指標_合計_valid_Allselected =
Var TempTable = SUMMARIZE(ALLSELECTED('論文リスト'[論文]),"最大値",MAX('論文リスト'[論文指標]))
return MAXX(TempTable,[最大値])

これ解決するのにとても時間がかかりました。

0 件のコメント: