从数据到信息
从信息到洞察

CALCULATE

在筛选器参数修改过的上下文中对表达式进行求值。

语法

CALCULATE( <表达式>, [ <筛选器 1> ], [ <筛选器 2> ] … )
参数 属性 描述
表达式 要计值的表达式
筛选器参数 可选 定义筛选器的布尔表达式或返回表的表表达式
---- 筛选器参数示意 ----

CALCULATE (
    <expression>,
    table[column] = 10             //布尔表达式
)

---- 等价于 ----

CALCULATE (
    <expression>,
    FILTER (                       //表表达式
        ALL ( table[column] ),
        table[column] = 10
    )
)

当筛选器参数使用布尔表达式的时候,用于判断的值需要遵循一定的限制,只能使用标量值或计算标量值的函数(比如 Date),但是:

  • 不能引用度量值。
  • 不能使用嵌套的 CALCULATE 函数。
  • 不能使用扫描表或返回表的任何函数,包括聚合函数

表表达式形式不受此限制。

返回值

标量 一个任意类型的值。

该值是表达式在修改后的筛选上下文环境中计算的结果。

备注

每个筛选器参数都可以删除筛选器(如 ALLALLEXCEPTALLNOBLANKROW)、还原筛选器(ALLSELECTED),或者使用一个表表达式,返回一列,多列或整个扩展表的值列表。

当筛选器参数是单列形式的条件判断表达式时,该表达式被嵌入到一个筛选引用列所有值的 FILTER 表达式中。例如,筛选器参数示意中的第一个表达式的高亮部分在内部被转换为第二个表达式的高亮部分,两种形式完全等价。所以,除了 CALCULATE 调节器之外,其他形式的筛选器参数的本质都是表。

筛选器参数会覆盖同一列上已有的任何筛选器,你可以使用 KEEPFILTERS 改变这种默认行为。

CALCULATE 是 DAX 中最常用,也是最重要的函数,你可以通过下面的文章深入了解有关这个函数的知识:

说点什么

1000
 
鼓掌微笑开心憧憬爱你色并不觉得吃瓜doge二哈喵喵思考笑哭捂脸悲伤大哭抓狂汗偷笑打脸捂眼黑线问号晕拜拜闭嘴衰咒骂ok作揖
  订阅本文评论  
提醒
DAX 圣经

DAX 函数大全

DAX 查询

DAX 运算符