CALCULATETABLE
在由给定筛选器修改的上下文中计算表表达式。
语法
CALCULATETABLE(<expression>,<filter1>,<filter2>,…)
参数
项 | 定义 |
---|---|
Expression | 要计算的表表达式 |
filter1,filter2,… | 定义筛选器的布尔表达式或表表达式 |
用作第一个参数的表达式必须是返回表的函数。
下列限制适用于用作参数的布尔表达式:
表达式不能引用度量值。
表达式不能使用嵌套的 CALCULATE 函数。
表达式不能使用扫描表或返回表的任何函数,包括聚合函数。
但是,布尔表达式可以使用查找单个值或计算标量值的任何函数。
返回值
包含值的表。
注释
CALCULATETABLE 函数将更改筛选数据的上下文,并在您指定的新上下文中计算表达式。对于在筛选器参数中使用的每一列,将删除该列上的现有筛选器,改为应用在筛选器参数中使用的筛选器。
此函数是 RELATEDTABLE 函数的同义词。
示例
下面的示例使用 CALCULATETABLE 函数获取 2002 年的 Internet 销售额的总和。该值随后用于计算与 2002 年的所有销售额相比的 Internet 销售额的比率。
下表显示来自以下公式的结果。
行标签 | Internet SalesAmount_USD | CalculateTable 2002 Internet 销售额 | Internet 销售额与 2002 年销售额的比率 |
---|---|---|---|
2001 | $2,627,031.40 | $5,681,440.58 | 0.46 |
2002 | $5,681,440.58 | $5,681,440.58 | 1.00 |
2003 | $8,705,066.67 | $5,681,440.58 | 1.53 |
2004 | $9,041,288.80 | $5,681,440.58 | 1.59 |
总计 | $26,054,827.45 | $5,681,440.58 | 4.59 |
=SUMX( CALCULATETABLE('InternetSales_USD', 'DateTime'[CalendarYear]=2002)
, [SalesAmount_USD])