Power BI合計値が計算結果と合わない 原因と解決策
Power BIのテーブルビジュアルで、集計行に表示される合計値が実際の計算結果と合わない場合の解決方法です。
例えば下図のようなケースです。
こちらは数量×金額で、売上金額の合計値を計算し、テーブルビジュアルにて表示しているものなのですが、
売上(合計)の10行を下に全て足していくと、10+20+30+…100=550になるところ、
Power BIのテーブル上の集計行(合計値)には5,500と桁1つ違って表示されていることが分かります。
これはデモデータを使ったので少々極端な例かもしれませんが、実務データを使ってレポートを作成していても、こうした事象に出くわす機会は結構あります。
膨大なデータを扱っていると、データそのものに不備があるのではないかと少し焦ります
(;’∀’) OMG~!
では、なぜこうなってしまうのでしょうか。
これはPower BIのテーブルの特性とSUM関数の特性によるものです。
実は今回売上金額の合計値を出すために、まずは数量と金額の合計値をSUM関数で別々で計算し、Calculate関数で数量×金額と積算する形で計算しています。
下記が計算式です。
・数量の合計値
数量(合計) =
SUM(Sheet1[数量])
・金額の合計値
金額(合計) =
SUM(Sheet1[金額])
・売上金額の合計値
売上(合計) =
CALCULATE('Sheet1'[数量(合計)] * 'Sheet1'[金額(合計)])
Sum関数は、特定の列の合計値を計算する関数です。
ただこれをテーブルビジュアルと合わせて使うと、
テーブルの各行に関しては左端で使っているID列の各行で「フィルターされて」されて計算される一方、
集計行に関しては「フィルターがされない」状態で計算結果が表示されるので計算が合わなくなってきます。
ですので、これを解決するためには、恐らく下記2通りです。
・「元から各行レベルで計算する関数を使う」
例)
売上金額 =
CALCULATE(SUMX('Sheet1', 'Sheet1'[数量] * 'Sheet1'[金額]))
・「追加行」で対応する
Sum関数で合計を計算して、テーブルで各行毎でフィルターするから計算結果が合わないのであり、
まずは各行毎で計算をした上で、その計算結果を合計しちゃう感じです。
Sumx関数は、列×列で計算した結果を、合計する関数なので、うまくいくという感じです。
以上です。
実際には色んなケースがあるので、もっと複雑な計算式を使うことが多いのですが、、、テーブルの集計行の特徴を理解してしまえば、それを回避する関数なりで対応できるはずです。
それでは、また!
(o^―^o)
コメントを残す