我有三个维度表和一个事实表Sales
- DimCalendar(字段年/月/日/周)
- DimCountry (Field: CountryName)
- DimManager (Field ManagerName)
- FctSales(字段:金额)
我想创建一个度量来计算销售额(FctSales)的总和,并且只过滤表DimCalendar和DimCountry的字段。
经过研究,我正在考虑的功能,除了,像:
计算(总和(销售(Amt)); ALLExcept(销售;国家(国家),日历(年)…)
但如果我这样做,我将不得不写表日历和表国家的每一列除了,我想知道是否有另一种解决方案。
也许使用REMOVEFILTERS()
删除每个过滤器,然后将过滤器放回DimCountry
和DimCalendar
可能工作?
CALCULATE (
SUM ( Sales[Amt] );
REMOVEFILTERS ();
VALUES( DimCountry[CountryName] );
VALUES( DimCalendar[Date] )
)
DimCalendar[Date]
应该是与Sales关系使用的列。此度量首先计算当前过滤器上下文中的过滤器参数。
使用用于关系的列作为过滤器,保证用于过滤的任何列都将映射到关系上。
然后,REMOVEFILTERS()
将删除任何现有的上下文过滤器,最终在第一步中评估的过滤器参数将被应用,放回在DimCalendar
和DimCountry
上设置的任何过滤。