当数据基于DAX公式时,Excel数据透视图显示空列

当数据基于DAX公式时,Excel数据透视图显示空列,excel,excel-formula,dax,powerpivot,Excel,Excel Formula,Dax,Powerpivot,我很感激这个问题可能真的很愚蠢,但我被难住了 我有一个表,从中可以创建透视表。基本表表面上是一个测试计划,我对仪表板中的3个字段感兴趣 在我的仪表板中,我使用了一些度量来计算未通过的案例数量“剩余案例”以及该百分比由“剩余未通过百分比”组成 我想要的是“执行优先级”始终显示所有值-临界值、高值、中值和低值 我真的不知道怎么做,因为“执行优先级”只是一个标准列,没有计算出来。当所有案例都设置为“通过”时,我已强制在行中显示“0”,使用度量结尾的“+0”=COUNTROWSFILTERTest\u

我很感激这个问题可能真的很愚蠢,但我被难住了

我有一个表,从中可以创建透视表。基本表表面上是一个测试计划,我对仪表板中的3个字段感兴趣

在我的仪表板中,我使用了一些度量来计算未通过的案例数量“剩余案例”以及该百分比由“剩余未通过百分比”组成

我想要的是“执行优先级”始终显示所有值-临界值、高值、中值和低值

我真的不知道怎么做,因为“执行优先级”只是一个标准列,没有计算出来。当所有案例都设置为“通过”时,我已强制在行中显示“0”,使用度量结尾的“+0”=COUNTROWSFILTERTest\u Schedule,Test\u Schedule[结果]pass+0”


有什么帮助吗?

有一种方法可以更改透视表,使其不会抑制返回数据集中的空列和空行

右键单击透视表->透视表选项,然后转到显示选项卡

在此基础上,有两个选项用于显示行上没有数据的项,一个用于列

如果选择列,它将始终显示所有执行优先级值,即使该列的返回值为null/空。

您可以使用CUBEVALUE和CUBEMEMBER函数来实现结果。 数据透视表不如常规数据透视表方便,但数据透视表将删除和/或添加添加到模型中的值,因此您无法使用数据透视表真正实现静态仪表板

我对您的isuue的建议: 1.在dax中创建两个度量:

countRows:=COUNTROWS(Table2)

countRowsNotPass:=IF(ISBLANK(COUNTROWS(FILTER(Table2,Table2[Result]<>"Pass"))),0,COUNTROWS(FILTER(Table2,Table2[Result]<>"Pass")))
在Excel中,为度量值创建以下调用

=CUBEMEMBERThisWorkbookDataModel,[Measures].[countRows] =CUBEMEMBERThisWorkbookDataModel,[Measures].[countRowsNotPass] 我把这些细胞命名为CountR和CountN

从仅包含功能区域的模型创建数据透视表

为以下各项创建立方体成员:临界、高、中、低等。。。像这样,只需更改组中每个人的突出显示的临界值:

=IFERRORCUBEMEMBERThisWorkbookDataModel,[Table2]。[Execution Priority]。&[Critical],Critical

5.创建一个这样的函数,这个函数应该可以得到剩余的案例数: =IFERRORCUBEVALUEThisWorkbookDataModel,CUBEMEMBERThisWorkbookDataModel,[表2]。[功能区]&[&$F4&],Crit,CountN,0

创建另一个函数这将为您提供剩余案例的百分比: =IFERRORG4/CUBEVALUEThisWorkbookDataModel,CUBEMEMBERThisWorkbookDataModel,[表2]。[功能区]&[&$F4&],临界值,计数,0

你应该得到这样的结果:


让我知道这是否有帮助

我以前尝试过这个,但没有效果,我相信它不起作用,因为我不是从真值表中提取数据,而是从度量值生成数据。我只想这样做,这样格式就不会一直改变,我现在已经用条件格式设置了。我很想知道我的愚蠢想法是否可行!要快速开始使用CUBEVALUE等创建静态仪表板,可以突出显示数据透视表,然后转到数据透视表工具->分析->OLAP工具->转换为公式。这会将透视表更改为包含所有适当公式的静态仪表板。@TDP你说得对,我更喜欢直接的方法。除了一个问题,在这种特殊情况下,如果您将数据透视表转换为公式,如果它将添加新的区域,则不会发生任何事情,因此它将是硬编码函数…感谢您的帮助!在第5点和第6点中,我最初必须命名为“暴击”和“临界”。我想这是因为您将值的名称定义为“crit”?@PaulColes确切地说,这更方便。