CALCULATE()
是 Power BI(DAX)中最核心、最强大的函数之一,它能让你在不同的上下文 中进行度量计算,可以说是"灵魂函数" 💡
✅ 一句话总结:
CALCULATE
用来 更改筛选条件后再进行计算,比如你想计算"某个条件下的销售额",就要用它!
🧠 基本语法:
DAX
CALCULATE(<表达式>, <筛选条件1>, <筛选条件2>, ...)
<表达式>
:通常是一个聚合函数,比如SUM()
,COUNT()
,AVERAGE()
等<筛选条件>
:可以是列的筛选、FILTER()
表达式、ALL()
、REMOVEFILTERS()
等
🎯 示例 1:计算电子产品的销售额
DAX
电子销售额 =
CALCULATE(
SUM(Sales[Amount]),
Product[Category] = "电子产品"
)
👉 意思是:在 Product[Category] = 电子产品
这个条件下,计算 Sales[Amount]
的总和。
🎯 示例 2:计算当前年销售额(结合时间智能)
DAX
今年销售额 =
CALCULATE(
SUM(Sales[Amount]),
YEAR(Sales[Date]) = YEAR(TODAY())
)
🎯 示例 3:去掉某些筛选(使用 ALL()
)
DAX
所有产品销售额 =
CALCULATE(
SUM(Sales[Amount]),
ALL(Product)
)
👉 不管当前页面筛选了哪个产品,都返回总销售额
🔥 常见搭配用法:
组合函数 | 用途 |
---|---|
FILTER() |
更复杂的多列或条件过滤 |
ALL() |
移除某列或表的筛选 |
REMOVEFILTERS() |
跟 ALL() 类似,语义更清晰 |
VALUES() |
获取当前上下文的唯一值列表 |
🧠 小口诀:
💬 想让"计算"变聪明,就用
CALCULATE()
加条件!
🔧 示例实战:计算毛利润
假设你有:
Sales
表:有销售数量、销售金额Product
表:有每件商品的成本价
你可以写一个利润度量字段:
DAX
总利润 =
CALCULATE(
SUMX(
Sales,
Sales[Quantity] * (RELATED(Product[Price]) - RELATED(Product[Cost]))
)
)