Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 在透视表中添加计算字段,并引用透视表的单元格_Vba_Excel_Pivot Table_Calculated Field - Fatal编程技术网

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

Vba 在透视表中添加计算字段,并引用透视表的单元格,vba,excel,pivot-table,calculated-field,Vba,Excel,Pivot Table,Calculated Field,我一直在尝试在透视表中添加一个计算字段。到目前为止,整个数据透视表都创建得非常完美。我要添加的最后一列id是计算的列。不幸的是,到目前为止,我甚至无法手动完成。但是,如果我只是将下面提供的公式作为公式插入到透视表旁边,那么它就可以完美地工作 =GETPIVOTDATA('Monthly $/SU Forecast',$A$15,'T-Lane','Athens to GREECE')-GETPIVOTDATA('Monthly $/SU Actual',$A$15,'T-Lane','Athen

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

=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
代码的整个部分如下所示:

.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
我的透视表


您的计算字段公式无效,因此无法手动添加。根据

  • 计算字段公式不能引用数据透视表总计或 小计
  • 计算字段公式不能按地址引用工作表单元格 或者叫名字
  • Sum是计算字段唯一可用的函数
  • 计算字段在基于OLAP的透视表中不可用
下面是一个屏幕显示如何设置计算字段:

…结果如下:

请注意,以这种方式创建计算字段几乎是多余的,在Excel 2013和更高版本中,您可以使用数据模型来执行此操作,甚至可以执行更多操作(即使您的Excel版本不是PowerPivot加载项附带的“特优”SKU)

下面的示例显示了该方法:

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

当您单击由此生成的数据透视表时,您将看到“数据透视表字段”对话框的外观略有不同:它将显示表名,然后在该表下列出每个字段:

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

为度量值指定名称,并在对话框中键入所需的公式。(实际上,您不必键入“总和”之类的内容……只需键入“预测”,您将看到出现一个自动完成框,您可以在其中选择所需的字段)

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


您的计算字段公式无效,因此无法手动添加。根据

  • 计算字段公式不能引用数据透视表总计或 小计
  • 计算字段公式不能按地址引用工作表单元格 或者叫名字
  • Sum是计算字段唯一可用的函数
  • 计算字段在基于OLAP的透视表中不可用
下面是一个屏幕显示如何设置计算字段:

…结果如下:

请注意,以这种方式创建计算字段几乎是多余的,在Excel 2013和更高版本中,您可以使用数据模型来执行此操作,甚至可以执行更多操作(即使您的Excel版本不是PowerPivot加载项附带的“特优”SKU)

下面的示例显示了该方法:

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

当您单击由此生成的数据透视表时,您将看到“数据透视表字段”对话框的外观略有不同:它将显示表名,然后在该表下列出每个字段:

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

为度量值指定名称,并在对话框中键入所需的公式。(实际上,您不必键入“总和”之类的内容……只需键入“预测”,您将看到出现一个自动完成框,您可以在其中选择所需的字段)

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


您是否尝试过将数据透视表布局从精简形式更改为大纲形式?否。。我真的不知道该怎么做!它位于“设计选项卡”->“报告布局”->“以大纲形式显示”下,可能有助于解决您的问题您是否尝试过将数据透视表布局从精简形式更改为大纲形式?否。。我真的不知道该怎么做!它位于“设计选项卡”->“报告布局”->“以大纲形式显示”下,它可能有助于解决您的问题,欢迎反馈!那么,你知道如何在数据透视表单元格之间的数据透视表内进行计算吗?请参阅我修改后的答案。我将提供我的数据透视表的屏幕截图,以便更清楚。。。我实际上想做的是在透视表中添加一个新的列,它将打印列“每月预测$/SU”和“实际$/SU”之间差异的结果。所以,我想要一个列,有三行,值为0,11-0,28=-0,17 | 0,33-0,35=-0,02 | 0,17-0,18=-0,01。所以,我实际上想要的是一个列来打印数据透视表单元格值之间的差异。。你认为有可能吗??再次感谢您抽出时间!可以请注意上面我的回答中的最后一行:以这种方式创建计算字段几乎是多余的,就像在Excel 2013和更高版本中一样,您可以使用数据模型来完成这项工作,还有很多其他工作。给谷歌一个机会,同时也可以查看ExcelIsFun YouTube频道,了解如何实现这一点的大量示例。好的,然后你可以使用PowerPivot做你想做的事情。即使没有SKU,您仍然可以使用数据模型和度量来实现这一点,就像类固醇上的计算字段一样。(请参阅我的答案,其中有关于数据模型的非PowerPivot使用的链接)。但是您也可以不用数据模型,使用我在感谢feed中提到的从属表方法来实现这一点