计算列没有任何筛选上下文。
要注入过滤器上下文,我们可以使用CALCULATE函数。
假设我有一个sales、location和date表。销售是事实。位置和日期是连接到事实数据表的维度。
假设我使用CALCULATE(SUM...))
在sales表中创建了一个计算列,注入的筛选器上下文是只包含sales表中的行,还是也包含所有相关的表列?
例如,假设location表通过locationid链接到sales表,并且具有州和国家,那么我们可以使用ALLEXCEPT只保留国家/地区筛选器,以便对于每一行,CALCULATE中的总和是按国家/地区聚合的,而不是该行中的所有字段。
发布于 2021-01-12 06:40:58
“注入”这个词不太合适。在计算列中使用CALCULATE执行context transition,然后使用您提供的任何参数(如果有)修改该筛选器上下文。
您可以执行建议的聚合,如下所示:
CALCULATE (
SUM ( Sales[Amount] ),
ALL ( Sales ),
FILTER ( Location, Location[Country] = RELATED ( Location[Country] ) )
)
首先,上下文转换将行上下文转换为筛选器上下文。然后,ALL删除Sales上的任何筛选器上下文,筛选器调整筛选以按指定的粒度进行聚合。
因为Country
不是Sales
的列,所以ALLEXCEPT不起作用。
https://stackoverflow.com/questions/65670301
复制相似问题