如何在Excel中使用MDX集计算成员?
我正在使用Excel 2013和SSAS 2014.我试图根据报告上下文将多个成员分组在一起以获得报告。
我试图通过创build一个包含所有我想分组的成员的自定义成员来实现这一点。 如果我硬编码的成员,它工作正常,但使用MDX,它失败。
这工作:
[Terminals].[Terminal].[Terminal 1] + [Terminals].[Terminal].[Terminal 2]
这不起作用:
Union([Terminals].[Terminal].[Terminal 1], [Terminals].[Terminal].[Terminal 2])
根据+运营商的文档 :
+(联合)操作符在function上等同于联合(MDX)function。
然而,情况肯定不是这样,因为用加号代替联合函数不会产生相同的结果。 我无法在MDX参考中find加号运算符的替代forms。
最终我想要做的是按照数据定义的规则过滤层次结构中的成员:
Filter( [Terminals].[Terminal].Children, ClosingPeriod([Date].[By Week].[Date], [Measures].[Days]) )
上述函数返回一组terminal,其中在查询中select的时间段的最后一天存在logging。 用户可能想要从报告中包含或包含这些内容。
如何在Excel中使用MDX集计算成员?
更新:
格雷格的build议下面的filter使用以下语法:
Aggregate( FILTER( NonEmpty([Terminals].[Terminal ID].Members), (ClosingPeriod([Date].[By Week].[Date]),[Measures].[Days]) = 1 ) )
请注意, 孩子们没有工作,但成员做到了。
如果您将计算的成员添加到terminal维度,那么这将工作:
Aggregate( Union([Terminals].[Terminal].[Terminal 1], [Terminals].[Terminal].[Terminal 2]) )
如果您正在创build一个新的计算度量值,请执
Aggregate( Union([Terminals].[Terminal].[Terminal 1], [Terminals].[Terminal].[Terminal 2]) ,[Measures].[Your Other Measure] )
可以将相同的模式应用于更复杂的Filter()expression式。