Excel 2010 PowerPivot:如何显示没有数据的项目?

Excel 2010 PowerPivot:如何显示没有数据的项目?

在标准 Excel 数据透视表中,有一个字段选项,即使当前选择没有结果,您也可以强制显示所有项目。以下是该选项:

数据透视表字段设置对话框

但是,使用 Excel 2010 的 PowerPivot 插件时,此选项会变灰。有没有解决方法可以强制显示所有结果?

示例场景 - 按月销售的香蕉数量。如果我在 8 月没有销售任何香蕉,则 powerpivot 表根本不会显示 8 月的列,它只会从 7 月跳到 9 月。我需要显示 8 月,并且香蕉数量为空白或为零。

有什么想法吗?也许需要 DAX 表达式?

编辑:回答 harrymc 的问题,我通过从 PowerPivot 窗口的此菜单中选择“数据透视表”创建了此数据透视表。

PowerPivot 数据透视表插入菜单

答案1

事实上这是一个更好的解决方案。感谢阿尔贝托·法拉利对于这个。

您需要建立一个月份表(即月份名称列表,一月/二月/三月等 -链接表就可以正常工作了),并在新的月份表和事实表之间建立关系。

然后写一个像这样的度量:

NeverBlankUnits:=IF( ISBLANK( SUM(FruitSales[Units]) )
                      , 0
                      , SUM(FruitSales[Units]) 
                   )

编辑:当您将新的月份列添加到数据透视表中时,您可能会发现默认排序令人沮丧地按字母顺序排列;四月、八月、十二月、二月……这是一个很棒的教程向您展示如何解决这个问题。

答案2

一个解决方法可能是使用数据分析表达式(DAX)将空白替换为零。

当事实表中不存在数据但您希望该行出现在数据透视表中时,DAX 可以强制为零而不是空白。

对于包含部门、分部和名为“数字”的事实表的简单工作表,其中有一列“D”包含要求和的数字,请按如下方式编写 DAX 代码:

=IF (
    COUNTROWS (Divisions) > 0; 
    IF (ISBLANK (SUM (Numbers[D])), 0, SUM (Numbers[D]))
)

更多信息请参阅:
如何在 Excel 的 PowerPivot 插件中使用 DAX
PowerPivot 中的数据分析表达式 (DAX)

此方法最初是在主题中提出的显示没有数据的项目

答案3

一种强力方法是为每个月创建一个度量。只要其中一个月份列有一些数据,所有月份列都会出现。不过,创建所有这些单独的度量非常繁琐 - 并不理想。

=CALCULATE(
   SUM([Units])
   ,Filter('FruitSales',[Month Name]="August")
   )

答案4

这对我有用:

=if(sum(日历[日期])>0;if(isblank(sum(Sales_SalesOrderDetail[LineTotal]));0;sum(Sales_SalesOrderDetail[LineTotal])))

相关内容