Power pivot命名为MDX字段

我在Excel 2013中有一个PowerPivot数据模型。我已经使用MDX将其分组到一个命名集合中,如下所示:

{[Measures].[Sum of Value1], [Measures].[Sum of Value2], [Measures].[Sum of Value3]} 

通过使用这个命名的Set,我可以在Excel数据透视表的行或列中进行多个度量。 我的问题是,是否有任何方式使用MDX(或PowerPivot屏幕中的DAX在使用各个度量时)根据单个度量值(不pipe该度量是否包含在集合中)过滤或隐藏整个集合? ? 最好,我正在寻找一种方法来做到这一点,而不包括另一个成员(即不是一个措施)。

Ror的例子,如果在上面的例子Value3的总和为零,我希望整个集隐藏数据透视表。

我知道我可以在数据模型中编辑DAX以基于另一个度量值的值返回BLANK()集合中包含的每个度量值,但是可能有些时候我想在所有情况下显示这些度量值。 这就要求我现在每个人至less有两个措施,我不喜欢这样做。

更新:

Sourav的答案看起来不错,但不幸的是我不能在我的特定情况下工作,我相信,因为我正在使用“使用MDX创build集”function(在字段,项目和设置function区菜单中的pipe理集选项下) Excel中。 它只会让我写MDX为:

 IIF([Measures].[Sum of Value3]=0, {}, {[Measures].[Sum of Value1],[Measures].[Sum of Value2],[Measures].[Sum of Value3]}) 

一旦我将这个新的集合添加到数据透视表,它仍然会显示[Value3的总和]为0的所有成员的全部3个度量。

我想我将不得不find使用DAX和Excel数据模型度量的方法。

更新2:

下面是帮助说明的截图。 请记住我的示例中的数据源不是外部多维数据集,它只是一个链接到数据模型中的Excel文件,可以运行MDX查询(有限制?)。 在这个例子中,我希望集合只返回行A和C,因为Value3的和不为零。 但是,正如你所看到的,所有的行都被返回。 谢谢! 在这里输入图像说明

你不能select隐藏/取消隐藏成员/套在飞行中。 相反,您可以使用IIF有条件地返回一个空集

 WITH SET MyNamedSet AS IIF([Measures].[Sum of Value3] = 0, {}, {[Measures].[Sum of Value1],[Measures].[Sum of Value2], [Measures].[Sum of Value3]} 

在AdventureWorks中为@whytheq工作的例子( 免责声明 – Cube是我为了testing而创build的)

 with set abc as iif([Measures].[Fact Internet Sales Count]>34229, { [Measures].[Fact Internet Sales Count], [Measures].[Extended Amount - Fact Internet Sales] }, {} ) SELECT abc on 0 from [AdventureWorksDW] where [Due Date].[Year].&[2004] 

在这里输入图像描述在这里输入图像说明

正如你所看到的,范围正在改变结果。

另一种方法是创build一个虚拟度量,根据您的[Measures].[Sum of Value3]度量值]返回null或者1 [Measures].[Sum of Value3] 。 然后用这个虚拟度量乘以所有其他目标度量。

以下是您在AdvWrks一个示例:

 SELECT [Product].[Product Categories].[Category].[Components] ON 0 ,{ [Measures].[Internet Sales Amount] ,[Measures].[Sales Amount] ,[Measures].[Standard Product Cost] ,[Measures].[Total Product Cost] } ON 1 FROM [Adventure Works]; 

返回这个:

在这里输入图像说明

增加虚假措施并修改其他措施:

 WITH MEMBER [Measures].[isItZero] AS IIF ( [Measures].[Internet Sales Amount] = 0 ,null ,1 ) MEMBER [Measures].[Sales Amount NEW] AS [Measures].[Sales Amount] * [Measures].[isItZero] MEMBER [Measures].[Standard Product Cost NEW] AS [Measures].[Standard Product Cost] * [Measures].[isItZero] MEMBER [Measures].[Total Product Cost NEW] AS [Measures].[Total Product Cost] * [Measures].[isItZero] SELECT NON EMPTY //<<<<this is required { [Measures].[Internet Sales Amount] ,[Measures].[Sales Amount NEW] ,[Measures].[Standard Product Cost NEW] ,[Measures].[Total Product Cost NEW] } ON 0 ,{} ON 1 FROM [Adventure Works] WHERE [Product].[Product Categories].[Category].[Components]; 

现在这返回:

在这里输入图像说明


编辑

根据你最新的编辑,请试试这个(我假设你正在使用Excel 2013):

创build两个新的措施来取代现有的两个:

名称:“价值总和1新”定义:

  IIF ( [Measures].[Sum of Value3] = 0 ,null ,[Measures].[Sum of Value1] ) 

名称:“Value2新和”定义:

  IIF ( [Measures].[Sum of Value3] = 0 ,null ,[Measures].[Sum of Value2] ) 

现在,在你的透视图中只使用这三个度量值,只是在行上以正常方式使用ID维度,即不要使用已经尝试过的自定义设置。

 [Measures].[Sum of Value1 NEW] [Measures].[Sum of Value2 NEW] [Measures].[Sum of Value3] 

ID B现在应该消失了吗?