如何在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式。