【Power BI】SUMX関数とは?SUM関数との違いと使い方を解説

Power BIでDAXを学び始めると、SUM関数は理解できてもSUMX関数でつまずく人は少なくありません。

SUM関数は列をそのまま合計する関数ですが、SUMX関数は各行を計算してから合計するという大きな違いがあります。

そのため、

  • 数量×単価を集計したい
  • 行ごとに異なる計算を行いたい
  • SUMPRODUCT関数のような処理をしたい
  • 条件付きで高度な集計を行いたい

といったケースでSUMX関数が活躍します。

Excel経験者であれば、SUMX関数は「SUMPRODUCT関数」と「SUMIFS関数」を組み合わせたような関数と考えると理解しやすいでしょう。

この記事では、

✅ SUMX関数の役割

✅ SUM関数との違い

✅ SUMPRODUCTとの違い

✅ FILTER関数との組み合わせ

✅ 実務で役立つ利用例

について、サンプルデータを使いながら分かりやすく解説します。

*あわせて、こちらの「フィルター評価」の記事もご確認ください。SUMX関数の理解に役立ちます。

この記事で分かること

✓ SUMX関数とは何か

✓ SUM関数との違い

✓ 行評価の考え方

✓ SUMPRODUCTとの違い

✓ FILTER関数との組み合わせ方

✓ 実務での活用パターン

詳細解説

ワークシート関数の振り返り

次の表を見てください

値1の列と値2の列をそれぞれ掛け合わせ、E8セルで合計しています

E10セルにはSUMPRODUCT関数が入っており、列1と列2をそれぞれ乗じつつ、各行の結果を合計しています

H3セルにはSUMIFS関数が入っており、G3セルの条件に応じて、列1と列2を乗じた値の合計を計算しています

但し、Eの列で算出した値を参照しています

SUMPRODUCT関数のように、単独では計算できません

DAXのSUMX関数では、このSUMPRODUCT関数とSUMIFS関数の組み合わせを一発で計算できます

SUMX関数の文法

SUMX関数の文法は次のようになります

SUMX(テーブル,式)

試しに、前述のSUMPRODUCT関数と同じことをしてみます

元データは前と同じデータ(テーブル名:myTable)になります

下の画像では、myTableを第一引数のテーブルとして指定し、第二引数で式を指定しています

mySUMX = SUMX(‘myTable’,’myTable'[値1]*’myTable'[値2])

今度は、SUMIFS関数と同じように列1の値が<3とします

この場合は、第一引数のテーブルにFILTER関数を使います

mySUMX_FILTER = SUMX(FILTER(‘myTable’,’myTable'[値1]<3),’myTable'[値1]*’myTable'[値2])

これで、SUMIFS関数とSUMPRODUCT関数との組み合わせを計算できています

嬉しいのはSUMX関数ではSUMPRODUCT関数と違い、式を自由に指定できる点です

DAXの可能性をまさに感じさせる関数だと思います

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です