CALCULATE 函数
CALCULATE 函数是 Power BI 中用途最广泛的函数之一。 下面的示例显 CALCULATE 函数语法:
CALCULATE( <expression>, <filter1>, <filter2>, ... )
必须计算第一个参数中的表达式,以返回结果(值),该表达式通常是聚合函数(如 SUM、AVG、MIN 等)。然后,在基于筛选器的上下文中计算此表达式。 这些筛选器可以扩展和限制当前的计算上下文。
使用 CALCULATE 函数,可以控制行和筛选器上下文。 可以添加、删除和更新筛选器。 CALCULATE 是 DAX 中许多计算的关键函数。
为 CALCULATE 添加筛选器
下面的代码片段演示了一个计算总销售额并添加飞机筛选器上下文的示例。
Airplane Sales = CALCULATE( [Total Sales], 'Product Details'[ItemGroup] = "Airplane" )
提示
以下代码片段演示了如何在 Tableau 中进行相同的计算:
Airplane Sales = IF [ItemGroup] = "Airplane" THEN SUM([Sales Amount] ELSE 0 END
为 CALCULATE 更新筛选器
下面的代码片段演示了一个示例,该示例说明了如何获取“2018 Sales”,即使在年份切片器中选择了“2019”也是如此。
2018 Sales = CALCULATE( [Total Sales], DATE[Year] = 2018 )
提示
直接进行 Tableau 比较的功能似乎不可用。 若要在 Tableau 中完成此函数,需要复制字段、引入补充数据源,或对每个列都进行计算。
为 CALCULATE 忽略筛选器
下面的代码片段演示了一个示例,该示例说明了如何查找将 Alexandria 列为城市(“Alexandria”是在城市切片器中选择的值)的州的总销售额。
Total Sales All States = CALCULATE( [Total Sales], ALL( Geography[State] ) )
提示
如果是在 Tableau 中,则可通过使用 EXCLUDE LOD 表达式进行相同的计算。 请注意,此 LOD 表达式在粒度方面与其他表达式不同。 使用此表达式,你需要从视图中排除州,而不是州和城市:
Total Sales All States = { EXCLUDE [State] : SUM([Total Sales]) }