スポンサーリンク

Power BIでTableauのLOD計算(FIXED)を再現

記事内に広告が含まれています。

TableauのLOD計算のような計算をPower BIでできないかと思い、調べてみたところ、DAXのALLEXCEPT関数を利用することできました。

データ

以下のような表形式データがあったとして、areaの平均amountと各レコードのamountの比を求めてチャート上に出力したい場合に、TableauであればLOD計算が利用できると思います。

今回は上の表のデータを例にareaごとの平均amountを算出してみます。

ALLEXCEPT関数

DAXのALLEXCEPT関数を利用することで実現できました。

Microsoft社のドキュメントの説明文を画像で引用します。

https://learn.microsoft.com/ja-jp/dax/allexcept-function-dax

パラメーター”列”に「コンテキストフィルターに保持する必要がある列」を追加しておくため、TableauであればFIXEDに指定する列と同じ列を追加することで、同様の動きが実現できます。

Power BIでの実装

Power BI Desktopで前出のデータ(test.csvに保存)を読み込み、以下のとおり、area_avg_amountというメジャーを追加しました。ALLEXCEPT関数でエリアを除くすべてのフィルターを排除したテーブルを作り、CALCULATE関数でそのテーブルから平均amountを計算というような動作のようです。

テーブルに表示してみると、area_avg_amountにはareaごとのamountの平均値が出力されています。

実施したいことはできました。

スポンサーリンク
Power BI
著者SNS
タイトルとURLをコピーしました