PowerBi中CALCULATE怎么使用?

664 阅读1分钟

CALCULATE() 是 Power BI(DAX)中最核心、最强大的函数之一,它能让你在不同的上下文中进行度量计算,可以说是“灵魂函数” 💡


✅ 一句话总结:

CALCULATE 用来 更改筛选条件后再进行计算,比如你想计算“某个条件下的销售额”,就要用它!


🧠 基本语法:

CALCULATE(<表达式>, <筛选条件1>, <筛选条件2>, ...)
  • <表达式>:通常是一个聚合函数,比如 SUM(), COUNT(), AVERAGE()
  • <筛选条件>:可以是列的筛选、FILTER() 表达式、ALL()REMOVEFILTERS()

🎯 示例 1:计算电子产品的销售额

电子销售额 =
CALCULATE(
    SUM(Sales[Amount]),
    Product[Category] = "电子产品"
)

👉 意思是:在 Product[Category] = 电子产品 这个条件下,计算 Sales[Amount] 的总和。


🎯 示例 2:计算当前年销售额(结合时间智能)

今年销售额 =
CALCULATE(
    SUM(Sales[Amount]),
    YEAR(Sales[Date]) = YEAR(TODAY())
)

🎯 示例 3:去掉某些筛选(使用 ALL()

所有产品销售额 =
CALCULATE(
    SUM(Sales[Amount]),
    ALL(Product)
)

👉 不管当前页面筛选了哪个产品,都返回总销售额


🔥 常见搭配用法:

组合函数用途
FILTER()更复杂的多列或条件过滤
ALL()移除某列或表的筛选
REMOVEFILTERS()ALL() 类似,语义更清晰
VALUES()获取当前上下文的唯一值列表

🧠 小口诀:

💬 想让“计算”变聪明,就用 CALCULATE() 加条件!


🔧 示例实战:计算毛利润

假设你有:

  • Sales 表:有销售数量、销售金额
  • Product 表:有每件商品的成本价

你可以写一个利润度量字段:

总利润 =
CALCULATE(
    SUMX(
        Sales,
        Sales[Quantity] * (RELATED(Product[Price]) - RELATED(Product[Cost]))
    )
)