如何修改MDX计算度量使其不受Region维度筛选影响
解决MDX度量忽略Region筛选器的问题
- 你之前用
Existing关键字的思路完全反了,Existing是用来保留当前上下文里的筛选结果的,所以写出来的度量只会计算被筛选到的Region数据,根本达不到忽略Region筛选的效果。 - 要让度量不受Region筛选器影响,核心是清除Region维度的筛选上下文,下面给你两种可行的写法:
写法一:用CALCULATE清除Region筛选
With member [Measures].[Total Sales Ignore Region] AS CALCULATE([Measures].[Total Sales], ALL([Region].[Region name]))
这个写法里,ALL([Region].[Region name])会直接清除Region维度的所有筛选,计算时会包含所有Region的销售数据,同时Year和Department的筛选会正常生效。
写法二:用Sum结合ALL获取所有Region成员
With member [Measures].[Total Sales Ignore Region] AS Sum(ALL([Region].[Region name].members), [Measures].[Total Sales])
这里把你原来的Existing换成ALL,就能获取到Region维度的所有成员,求和时会遍历所有Region的数据,自然就不受筛选器的限制了。
如果你的Region维度有多层级(比如Region下包含Country、City这类子层级),可以把ALL([Region].[Region name])改成ALL([Region]),这样能清除整个Region维度的所有层级筛选。
内容的提问来源于stack exchange,提问作者gurupanda
相关产品推荐
相关产品推荐

