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