如何(是吗?)防止数据的 PivotTablization 导致“#DIV/0!”等缺少数据时?

How is it (is it?) possible to prevent the PivotTablization of data to result in "#DIV/0!" and such when there is missing data?

我正在生成一个数据透视表,其中包含项目的每月数据(售出多少,售出多少,以及相关统计数据)。但在某些情况下,某个特定商品在一个或多个月内没有销售。在那种情况下,没有包含“0”值的记录,该记录根本不存在 non-existent 销售。

当显示此类项目的数据时,不存在的数据会造成严重破坏。下面的屏幕截图显示了当一个项目有两个月的数据(APPLES,GALA 5#)和没有(APPLES,GALA 5#)的数据时会发生什么:

正如您所看到的,当数据被透视表化时,它没有在 "Total Packages" 和 "Total Purchases" 中放置一个“0”,而是将这些单元格留空并插入一个“#DIV/0!”在 "Sum of Average Price" 单元格中 - 然后是“.”在“占总数的百分比”单元格中。

这没有帮助或不悦目。我想要这些单元格中的一系列破折号或零。

一种解决方法是为源数据透视数据中的每个当前 non-existent 创建一行,但这似乎是不必要的,而且在极端情况下很笨拙——我必须确定哪些项目具有 "missing" 个月,然后向他们提供这些 0 值。

这真的是我需要做的吗?请说不是这样!

更新

提供的答案让我尝试通过更改数据透视表选项格式 vals 会发生什么。从这个数据开始:

...我为错误值输入了问号,为空单元格输入了破折号:

这导致数据看起来像这样:

好多了,但还是不尽如人意want/expect。至少因为它更好,我会选择一种编程方式来完成同样的事情。

我没想到会看到“?”遵循某些 "good" 值,但是...

所以我可能需要的是 "for empty cells, show a dash" 的编程等价物(对于 int 转换为 0,对于 decimal 转换为 $0)。

Pivot Tables 可以隐藏错误。

右键单击您的枢轴 Table 和 select 枢轴 Table 选项。在 布局和格式 选项卡上,在 格式 下,查找 For error values show.

这并不完美("pvt" 是数据透视表):

pvt.ErrorString = "";
pvt.DisplayErrorString = true;

...但它确实消除了缺失值(除了 %" 单元格中顽固的“.”):

我添加了另一行代码看看它会做什么:

pvt.NullString = "-";

...所以我现在有了这个:

pvt.ErrorString = "";
pvt.DisplayErrorString = true;
pvt.NullString = "-";

...并添加最后一行确实有帮助 - 我得到整数的“0”和小数的“$0”,如下所示: