在 Power BI(DAX)中,SUM 和 SUMX 都是求和函数,但它们的作用场景和使用逻辑完全不同,一定要搞清楚!✅
✅ 一句话总结:
SUM是对某一列直接求和;SUMX是在一张表中“逐行计算后再求和” ,更灵活强大!
🔍 详细区别对比
| 特点 | SUM | SUMX |
|---|---|---|
| 功能 | 对某一列直接求和 | 对每一行先计算一个表达式,再对结果求和 |
| 参数 | 一列(Column) | 一个表 + 一个表达式 |
| 用途 | 简单求和 | 复杂计算,比如“数量 × 单价”、“利润率”等 |
| 是否逐行处理 | ❌ 否 | ✅ 是 |
🎯 示例说明
✅ 示例 1:用 SUM 求销售额
总销售额 = SUM(Sales[Amount])
➤ 直接对
Amount这一列求和,简单快捷。
✅ 示例 2:用 SUMX 计算总利润(数量 × 成本)
总利润 =
SUMX(
Sales,
Sales[Quantity] * RELATED(Product[ProfitPerUnit])
)
➤ 对
Sales表的每一行执行:
数量 × 单位利润,然后对所有结果求和。
🎯 场景对比
| 你想做的事 | 用哪个? | 示例 |
|---|---|---|
| 求销售额字段的总和 | SUM | SUM(Sales[Amount]) |
| 计算“数量 × 单价”的总和 | SUMX | SUMX(Sales, Sales[Quantity] * Sales[Price]) |
| 求一张计算列的总和(公式计算) | SUMX | SUMX(FILTER(...), 公式) |
| 对不同的表进行关联字段计算 | SUMX + RELATED | SUMX(Sales, Sales[Qty] * RELATED(Product[Cost])) |
🔥 总结口诀:
🔹 列中求和用
SUM,按行计算再求和用SUMX
🔹SUMX = 表 + 表达式,是计算型度量的核心
🔹 遇到“先算再加”就用SUMX
🧠 常和 SUMX 搭配的函数:
| 函数 | 用途 |
|---|---|
RELATED() | 跨表取字段(适用于 Many to One) |
FILTER() | 先过滤表,再用 SUMX 逐行求和 |
DIVIDE() | 表达式中做除法更安全 |
VAR + RETURN | 写复杂逻辑更清晰 |