Excel 数据透视表将列中的空白单元格(“”)识别为文本而不是数字

Excel 数据透视表将列中的空白单元格(“”)识别为文本而不是数字

我在 Excel 数据透视表识别列为文本而不是数字时遇到问题。

背景:

我有一个主表 (Main_Tbl),其中有一列(“净小部件”)用于计算其他两列(小部件销售量与退货量)之间的差异。但是,0如果两列中都没有值,公式将返回一个空白单元格,而不是一个单元格。出现这种情况的原因是,我有一个 AGGREGATE 函数对 A 列进行平均(忽略隐藏、空白和错误),因此平均值会根据应用于表的其他筛选而变化。我也不想将这些空白作为零包含在平均值中,因为有些商店可能在这段时间内不销售小部件。

问题:

出现此问题的原因是,我还有一个引用 Main_Tbl 的透视表,该透视表也对 Net Widgets 进行平均。但是,当此列中存在空白单元格时,透视表似乎将其识别为文本,并在刷新后直接删除该字段。

示例设置

在链接的屏幕截图中,公式如下:

C1: =IFERROR(AGGREGATE(1,3,C$3:C$212),0)

C3: =IFERROR(D3-E3,"")

D3: =IF(ISERROR(VLOOKUP(A3,Ref_Table[Store ID],1,FALSE)),"",SUMIF(Ref_Table[Store ID],A3,Ref_Table[Widgets Sold]))

E3: =IF(ISERROR(VLOOKUP(A3,Ref_Table[Store ID],1,FALSE)),"",SUMIF(Ref_Table[Store ID],A3,Ref_Table[Widgets Returned]))

屏幕截图是在刷新之前可见的。刷新后,Pvt_Tbl 中的“净小部件平均值”列会消失,因为第 5 行(“CAN003”)为空白。

我相信我的问题与此类似:Excel 2010:如果(,,“”)不被视为按日期分组的数据透视表的空白

我不知道如何解决数据透视表的问题,同时保留原始表中的 AGGREGATE 函数。

答案1

如果你愿意创建一个重复的 NetWidget 计算列在数据模型中。

由于某种原因,我无法准确复制您的问题,如下所示:

  1. 公式 D3-E3 没有返回错误,空白时返回 0。所以我使用了 IF($D3="","",$D3-$E3)
  2. 当我直接从 Main_Tbl 创建数据透视表时(不是来自数据模型),平均 Netwidget 列运行正常。

我已经创建了一个包含这两种场景以及另一个示例场景的 Excel。在使用数据模型时,我创建了一个名为“NetWidget - 计算”使用公式=IF(Main_Tbl[NetWidget]="",BLANK(),Main_Tbl[NetWidget]),我可以将其转换为数字并在数据透视表中使用。

请在以下位置找到该 Excel。
https://drive.google.com/open?id=1jtQQQvrx3W6r5iyO8v3FevC7y-robvNz

截图如下: 如果数据透视表为空

如果它不起作用,请告诉我。

相关内容