我的数据如下所示:
Col1 | Value
A | 1
B | 1
A | 3
C | 7
以及汇总 col1 值的数据透视表。
此外,我在另一个单元格(在另一个工作表中)有一个交换表,我想在我的数据透视表中创建一个计算字段,该字段乘以该单元格中汇率的值。
这可能吗?如何?
这样做的原因是用户可能会更改单元格中的汇率,但他们不知道如何在计算字段中更改它。
我知道我可以简单地在我的源数据中添加一个带有计算值的列,但如果可能的话,我想将它作为计算数据透视表字段来完成。
最佳答案
您可以通过使用一点 VBA 将表“从属”到数据透视表来实现类似于您所追求的目标。 See this answer I posted, that can be adapted to effectively achieve what you want.
或者,您可以将源数据中的各个总计乘以名为 Exchange_Rate 的命名范围,并且只要用户更改 Exchange_Rate 输入参数,就可以使用一小部分 VBA 来刷新 Pivot。
看起来是这样的:
...如果我更改该橙色输入单元格中的 ExchangeRate 变量:
为此,我在相关工作表模块中有一小段 VBA,它只是监视输入单元格的任何更改,然后刷新数据透视表,以便数据透视表反射(reflect)基础源数据中的更新值:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("ExchangeRate")) Is Nothing Then ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
End Sub
或者,您可以在以特定汇率设置计算字段时记录宏,然后修改该代码,以便替换汇率部分以匹配对该橙色单元格的任何更改:
...这是执行此操作的事件处理程序代码:
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's Disconnected Slicer trick .
关于excel - 如何创建引用excel数据透视表中单元格值的计算字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43098407/