如何创build一个引用Excel数据透视表中的单元格值的计算字段

我有我的数据,如下所示:

Col1 | Value A | 1 B | 1 A | 3 C | 7 

和一个数据透视表,总结col1的值。 另外,我有另一个单元格(在另一个工作表)交换rete,我想在我的数据透视表中创build一个计算的字段乘以该单元格中的汇率的值。 这可能吗? 怎么样? 原因是用户可能会改变单元格中的汇率,但他们不知道如何在计算的字段中进行更改。 我知道我可以简单地添加一个列在我的源数据与计算的值,但我想做的计算数据透视表字段,如果这是可能的。

你可以通过一个小小的VBA将一张表“从属”到一个数据透视表中。 看到我发布的这个答案,即可以适应有效实现你想要的。

或者,您可以将源数据中的单个总计乘以名为Exchange_Rate的命名范围,并且只要用户更改了Exchange_Rateinput参数,就会有一小部分VBA刷新数据透视表。

这是看起来如何:

第一次汇率

…如果我更改该橙色input单元中的ExchangeRatevariables:

在这里输入图像说明

为此,我在相关图表模块中有一小段VBA,它只是监视input单元的任何更改,然后刷新数据透视表,以便透视表反映底层源数据中的更新值:

 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("ExchangeRate")) Is Nothing Then ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh End Sub 

或者,您可以在设置特定汇率的计算字段的同时录制macros,然后修改该代码,以便replace费率部分以匹配对该橙色单元格的任何更改: 计算字段

…这里是这样的事件处理程序代码:

 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("ExchangeRate")) Is Nothing Then _ ActiveSheet.PivotTables("PivotTable1").CalculatedFields("Local Cost"). _ StandardFormula = "='Value ($USD)'/ " & Range("ExchangeRate") End Sub 

或者,如果您有能力使用PowerPivot,则可以使用Rob Collie的Disconnected Slicer技巧 。