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

时间:2018-05-17 14:21:06

标签: excel excel-formula dax powerpivot

我很欣赏这个问题可能真的很愚蠢,但我很难过。

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

enter image description here

在我的信息中心中,我使用了一些措施来计算未通过的案例数量和剩余的案例数量。这个百分比包含的剩余百分比是少于通过'。

enter image description here

我想要的是'执行优先级'始终显示所有值 - 严重,高,中,低。

我真的不知道怎么做,因为'执行优先级'只是一个标准列,它没有计算。我强行要求一个' 0' 0当所有案例都设置为“通过”时出现在行中使用' + 0'在措施结束时' = COUNTROWS(过滤器(Test_Schedule,Test_Schedule [Result]<>" Pass"))+ 0'

任何帮助?

2 个答案:

答案 0 :(得分:1)


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

我建议您使用的是: 1.在dax中创建2个措施:

countRows:=COUNTROWS(Table2)

countRowsNotPass:=IF(ISBLANK(COUNTROWS(FILTER(Table2,Table2[Result]<>"Pass"))),0,COUNTROWS(FILTER(Table2,Table2[Result]<>"Pass")))
  1. 在Excel中创建以下调用措施

    = CUBEMEMBER(&#34; ThisWorkbookDataModel&#34;&#34; [处理方法] [countRows]&#34;。) = CUBEMEMBER(&#34; ThisWorkbookDataModel&#34;&#34; [处理方法] [countRowsNotPass]&#34;。)
    我将这些单元命名为CountR和CountN

  2. 从仅包含&#34;功能区&​​#34;的模型创建数据透视表。在行

  3. 为以下各项创建一个Cubemembers:&#34; Critical,High,Medium,Low等...&#34;像这样(只需更改组中每个突出显示的严重):

    = IFERROR(CUBEMEMBER(&#34; ThisWorkbookDataModel&#34;,&#34; [Table2]。[执行优先级]。&amp; [严重]&#34;),&# 34;的临界&#34)

  4. 5.创建一个这样的函数,这个应该可以得到剩余的案例数:    = IFERROR(CUBEVALUE(&#34; ThisWorkbookDataModel&#34;,CUBEMEMBER(&#34; ThisWorkbookDataModel&#34;,&#34; [Table2]。[功能区]。&amp; [&#34;&amp; $ F4&amp; &#34;]&#34),爆击,COUNTN),0)

    1. 创建另一个函数,这应该为您提供剩余案例的百分比:
    2. = IFERROR(G4 / CUBEVALUE(&#34; ThisWorkbookDataModel&#34;,CUBEMEMBER(&#34; ThisWorkbookDataModel&#34;,&#34; [Table2]。[功能区]。&amp; [&#34; &安培; $ F4&安培;&#34;]&#34),爆击,COUNTR),0)

      你应该得到类似的东西: Dashboard preview


      如果有帮助,请告诉我

答案 1 :(得分:0)

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

右键单击数据透视表 - &gt;然后转到“数据透视表”选项,转到“显示”选项卡。

关于显示项目的选项,行上没有数据,列上没有数据。

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