SUM関数とSUMX関数の違い

パワーピボット 基本

DAXにおけるSUM関数は、Excel関数でのイメージ通り、列の合計を行います。

一方、DAX関数には、SUMXといった最後に「X」のつく関数が登場します。

この記事では、SUMとSUMXの違いについて説明をします。

次のテーブルで総売上を求めたいとします。

SUM関数を使った場合

まずは、SUM関数を使って、

売上金額:=SUM([単価])*SUM([販売数])

とメジャーを作成すると、1,200円という誤った計算結果が出力されます。

これは、単価列の足し算(SUM)、販売数列の足し算(SUM)を先に行ってしまうためです。

SUMXの場合

次は、SAMXを使ったメジャーを作成してみます。

売上金額:=SUMX('販売実績',[単価]*[販売数])

こちらは、先に各行の「単価×販売数」を計算し、その結果を足し算(SUM)するので正しく結果を得られます。

※式内で指定した’販売実績’は、テーブル名

SUM関数が、単純に指定した列の合計を求めるのに対して、
SUMX関数は行ごとの処理を済ませた後で、列の合計を求めます。

POINT

「SUMX」の他にも「AVERAGEX」「RANKX」「MINX」など、Xの付いた関数がありますが、全て動きは同じで、行の処理を先に行ってから結果を出力します。

SUMX(‘販売実績’,[単価]*[販売数])・・・単価×販売数を計算した後、合計を求める

AVERAGEX(‘販売実績’,[単価]*[販売数])・・・単価×販売数を計算した後、平均を求める

MINX(‘販売実績’,[単価]*[販売数])・・・単価×販売数を計算した後、一番小さかった行の値を求める

Xのつく関数をイテレーター関数といいますが、
「イテレーター関数は、横軸(X軸)から計算する」と私は覚えています。


 


仕事の生産性の人気オンラインコース

コメント