PowerBi中SUM和SUMX有什么不同?

301 阅读1分钟

在 Power BI(DAX)中,SUMSUMX 都是求和函数,但它们的作用场景和使用逻辑完全不同,一定要搞清楚!✅


✅ 一句话总结:

SUM 是对某一列直接求和;SUMX 是在一张表中“逐行计算后再求和” ,更灵活强大!


🔍 详细区别对比

特点SUMSUMX
功能对某一列直接求和对每一行先计算一个表达式,再对结果求和
参数一列(Column)一个表 + 一个表达式
用途简单求和复杂计算,比如“数量 × 单价”、“利润率”等
是否逐行处理❌ 否✅ 是

🎯 示例说明

✅ 示例 1:用 SUM 求销售额

总销售额 = SUM(Sales[Amount])

➤ 直接对 Amount 这一列求和,简单快捷。


✅ 示例 2:用 SUMX 计算总利润(数量 × 成本)

总利润 = 
SUMX(
    Sales,
    Sales[Quantity] * RELATED(Product[ProfitPerUnit])
)

➤ 对 Sales 表的每一行执行:
数量 × 单位利润,然后对所有结果求和。


🎯 场景对比

你想做的事用哪个?示例
求销售额字段的总和SUMSUM(Sales[Amount])
计算“数量 × 单价”的总和SUMXSUMX(Sales, Sales[Quantity] * Sales[Price])
求一张计算列的总和(公式计算)SUMXSUMX(FILTER(...), 公式)
对不同的表进行关联字段计算SUMX + RELATEDSUMX(Sales, Sales[Qty] * RELATED(Product[Cost]))

🔥 总结口诀:

🔹 列中求和用 SUM按行计算再求和用 SUMX
🔹 SUMX = 表 + 表达式,是计算型度量的核心
🔹 遇到“先算再加”就用 SUMX


🧠 常和 SUMX 搭配的函数:

函数用途
RELATED()跨表取字段(适用于 Many to One)
FILTER()先过滤表,再用 SUMX 逐行求和
DIVIDE()表达式中做除法更安全
VAR + RETURN写复杂逻辑更清晰