CALCULATE

计算由指定筛选器修改的上下文中的表达式。

语法

CALCULATE(<expression>,<filter1>,<filter2>…)

参数

定义
expression 要进行计算的表达式。
filter1,filter2,… (可选)定义筛选器的布尔表达式或表表达式的逗号分隔的列表。

用作第一个参数的表达式在本质上与度量值相同。

下列限制适用于用作参数的布尔表达式:

  • 表达式不能引用度量值。

  • 表达式不能使用嵌套的 CALCULATE 函数。

  • 表达式不能使用扫描表或返回表的任何函数,包括聚合函数。

但是,布尔表达式可以使用查找单个值或计算标量值的任何函数。

返回值

作为表达式的结果的值。

注释

如果已筛选数据,则 CALCULATE 函数将更改筛选数据的上下文,并且在您指定的新上下文中计算表达式。对于在筛选器参数中使用的每一列,将删除该列上的现有筛选器,改为应用在筛选器参数中使用的筛选器。

示例

为了计算当前分销商销售额与所有分销商销售额的比率,您向数据透视表添加一个度量值,该度量值首先计算当前单元的销售额的总和(分子),然后用该总和除以所有分销商的总销售额(分母)。为了确保不管数据透视表是如何筛选数据或对数据进行分组的,分母都保持相同,表示分母的公式部分必须使用 ALL 函数来清除所有筛选器并且创建正确的合计。

下表显示在通过使用代码部分中的公式创建名为 All Reseller Sales Ratio 的新度量值时的结果。

为了阐释其工作方式,向该数据透视表的“行标签”区域添加字段 CalendarYear,向该数据透视表的“列标签”区域添加字段 ProductCategoryName。然后向该数据透视表的“值”区域添加新度量值。为了将数字显示为百分比,将百分比数字格式应用于包含新度量值 All Reseller Sales Ratio 的数据透视表区域。

所有分销商销售额 列标签
行标签 Accessories Bikes Clothing Components 总计
2001 0.02% 9.10% 0.04% 0.75% 9.91%
2002 0.11% 24.71% 0.60% 4.48% 29.90%
2003 0.36% 31.71% 1.07% 6.79% 39.93%
2004 0.20% 16.95% 0.48% 2.63% 20.26%
总计 0.70% 82.47% 2.18% 14.65% 100.00%
=( SUM('ResellerSales_USD'[SalesAmount_USD]))
 /CALCULATE( SUM('ResellerSales_USD'[SalesAmount_USD])
           ,ALL('ResellerSales_USD'))

通过分母中的 CALCULATE 表达式,求和表达式可以在计算中包括所有行。这将覆盖用于表达式分子部分的 CalendarYear 和 ProductCategoryName 的隐式筛选器。

相关函数

CALCULATE 函数要求返回单个值的表达式作为其第一个参数,而 CALCULATETABLE 函数采用包含值的表。

results matching ""

    No results matching ""