答案1
正如您所发现的,“”不是一个空单元格,而是一小段文本,绘制为零。因此,它可能适用于您的数据透视表源,但不适合您的图表源。
制作两个数据范围,一个用于使用“”的数据透视表,另一个用于使用#N/A 的图表。
答案2
答案3
- 真正的空单元格选项
处理此问题的最佳方法是使用真实且适当的空单元格(无值,无公式),但可以理解的是,对于每列连续运行公式的情况,这并不总是可行的。
这种方法具有额外的优点(对某些人来说是缺点?),即在正常散点图中出现不连续的线。
- 筛选“”空白选项
在公式中使用 ="" 将使数据透视表按预期工作。然后,您可以向数据添加常规过滤器并过滤掉空白。常规图表将忽略隐藏的行并绘制一条连续的线。
遗憾的是,如果您的多个系列中的“空白”不均匀地分布在各行之间,则此选项不起作用。
- 枢轴刷新选项
您还可以利用数据透视表不会自动刷新这一事实。将单元格命名为“plotforpivot”,并赋予其值 TRUE。然后对您的“空白”单元格使用此公式:
=IF(plotforpivot,"",NA())
现在刷新数据透视表。接下来将“plotforpivot”单元格更改为 FALSE。您的数据透视表和正常图现在将正确反映,直到下一次数据透视表刷新。
- AGGREGATE 函数选项
您可以选择自己计算平均值(即不使用数据透视表)。如果您使用 NA(),则普通的 AVERAGE 函数(也由 Pivot 使用)也将返回 #N/A。但是,可以使用 AGGREGATE 函数计算平均值,同时忽略错误,例如=AGGREGATE(1,7,B2:B7)
。遗憾的是,没有使用 AGGREGATE 函数来汇总数据透视值的选项。
- 过滤枢轴
最后但并非最不重要的一点是,您可以过滤数据透视表中的 #N/A 值。首先将=NA()
其用于空白,以便正常图表绘制得很漂亮。接下来,根据需要设置数据透视表,同时将系列数据拖到数据透视表“过滤器”部分下。现在,单击数据透视表顶部系列旁边的向下过滤箭头,单击“选择多个项目”并取消选中“#N/A”。不幸的是,这与使用选项 #2 进行过滤存在同样的问题,因为多个系列也会一次过滤整行。我猜从根本上说这是一个问题,因为 Excel 无法平均一个系列的 10 个项目,然后只平均另一个系列的 9 个项目。它不能只隐藏一个单元格,只能隐藏整行或整列。也许您可以改为创建多个数据透视表?每个系列一个?
综上所述
最后,如果您有多个系列,您可能别无选择,只能复制每个系列列,一个带有 #N/A,另一个带有 ""。您至少可以轻松地从原始公式(B 列)中的 NA() 开始,然后在副本中使用 =IFERROR(B2,"")。
理想情况下,应该能够在数据透视中使用 AGGREGATE(1,7...)。在 Google 上搜索是否可行,我确实使用 PowerPivot / PowerQuery 找到了一些结果。如果你愿意,你可以尝试一下,但这不是我的强项。
我认为我个人更喜欢数据透视表刷新选项(#3)。如果客户足够聪明,能够刷新数据透视表,他们肯定可以切换单元格值。您甚至可以将“plotforpivot”单元格设为下拉列表,仅允许 TRUE 或 FALSE,并且您可以在 A1 中包含一个警告公式,用于检测数据透视表中是否存在 #N/A 错误以及数据中是否存在“”空白,例如=HYPERLINK("#plotforpivot",IF(ISNA(GETPIVOTDATA("Data",$D$1)), "WARNING #N/A ERROR: PLEASE TOGGLE PLOTFORPIVOT AND REFRESH THE PIVOT TABLE", IF(COUNTIF(B2:B7,"")>0,"WARNING PLOTTING ERROR: PLEASE TOGGLE PLOTFORPIVOT","ALL GOOD!")))