在数据透视表中添加计算字段,并引用数据透视表的单元格

时间:2017-10-18 11:50:10

标签: excel vba excel-vba pivot-table calculated-field

我一直在尝试在数据透视表中添加计算字段。到目前为止,整个数据透视表都是完美的。我要添加的最后一列是计算出的一列。不幸的是,到目前为止我甚至无法手动完成。但是,如果我只是在透视表旁边插入一个公式,下面提供的公式,那么它可以完美地工作。

=GETPIVOTDATA('Monthly $/SU Forecast',$A$15,'T-Lane','Athens to GREECE')-GETPIVOTDATA('Monthly $/SU Actual',$A$15,'T-Lane','Athens to GREECE')

当我在宏内部键入以下内容时,它会显示“无法获取数据透视表类的PivotFields属性”#39;为行

.PivotFields("Diff").Orientation = xlDataField

代码的整个部分是:

.CalculatedFields.Add "Diff", "=GETPIVOTDATA('Monthly $/SU Forecast',$A$15,'T-Lane','Athens to GREECE')-GETPIVOTDATA('Monthly $/SU Actual',$A$15,'T-Lane','Athens to GREECE')"
.PivotFields("Diff").Orientation = xlDataField

我的数据透视表

enter image description here

1 个答案:

答案 0 :(得分:2)

您的计算字段公式无效,这就是您无法手动添加的原因。根据{{​​3}}

上的文章
  • 计算字段公式不能引用数据透视表总计或 小计
  • 计算字段公式不能按地址引用工作表单元格 或者通过名字。
  • Sum是计算字段唯一可用的函数。
  • 计算字段在基于OLAP的数据透视表中不可用。

这是一个screeshot,显示如何设置计算字段:

http://www.contextures.com/excel-pivot-table-calculated-field.html

......这是结果:

enter image description here

请注意,以这种方式创建计算字段几乎已经变得多余,因为在Excel 2013及更高版本中,您可以使用数据模型执行此操作以及更多内容(即使您的Excel版本不是与PowerPivot插件一起提供的“高级”SKU之一。)

以下是显示该方法的示例:

首先,选择您的数据源,将其转换为Excel表,然后创建一个新的数据透视表,但这次选中对话框底部的框“将此数据添加到数据模型”

enter image description here

当你点击它产生的数据透视表时,你会看到数据透视表字段对话框看起来略有不同:它将显示表名,然后在该表下它将列出每个字段:

enter image description here

右键单击该对话框中的表名,然后单击“添加度量”选项:

enter image description here

为Measure指定名称,然后在对话框中键入所需的公式。 (你实际上不必输入'总和'的东西......只需输入'预测',你会看到一个自动完成框出现在你可以选择你想要的字段的地方)

enter image description here

Bam:你在数据透视表中有一个新的计算字段:

enter image description here