Edited at

Power BIでテーブルをフィルタして値を計算するとき、"+ 0"を追加しておくと便利

More than 1 year has passed since last update.

以下のようなデータ(Tableと名付けます)を読み込み、「総売上に対する商品Aの売上比率」を各都市ごとに計算したいとします。

Table.jpg

新しいメジャーを作成し、以下のようにDAXを書くとします。一応説明しておきますと、Item = "A"の行のRevenueを合計し、それを全行のRevenueの合計で割っています。

Rate of Item A = 

DIVIDE(
CALCULATE(SUM('Table'[Revenue]), 'Table'[Item] = "A"),
SUM('Table'[Revenue])
)

この値を各都市ごとにビジュアライズしてみましょう。

Chart1.jpg

名古屋のデータが表示されません。これは名古屋には商品Aの売上レコードがない為、CALULATEの返す値が0ではなくNULL(なのか分かりませんが、数値ではない)為です。

解決の為にもちろん売上0円でもレコードを存在させるようにすればこの問題はありませんが、必ずしもデータをそのように作れるとは限りません。

こういった場合、CALULATEの結果に"+ 0"を付けるだけで問題が解決できます。

Rate of Item A = 

DIVIDE(
CALCULATE(SUM('Table'[Revenue]), 'Table'[Item] = "A") + 0,
SUM('Table'[Revenue])
)

このDAXにするとチャートはどうなるでしょうか。

Chart2.jpg

これで名古屋のデータも表示されるようになりました。