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の可能性をまさに感じさせる関数だと思います










コメントを残す