excel - 如何创建引用excel数据透视表中单元格值的计算字段

标签 excel pivot-table calculated-field

我的数据如下所示:

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。

看起来是这样的:

First Exchange Rate

...如果我更改该橙色输入单元格中的 ExchangeRate 变量:

enter image description here

为此,我在相关工作表模块中有一小段 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

或者,您可以在以特定汇率设置计算字段时记录宏,然后修改该代码,以便替换汇率部分以匹配对该橙色单元格的任何更改:
Calc Field

...这是执行此操作的事件处理程序代码:
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/

相关文章:

python - aggfunc 获取 pandas 数据透视表单元格中的任意值

python - Pandas 整数列的数据透视表返回小数值

mysql - 使用来自另一个表行的列构建类似 "dynamic pivot"的查询

Android 计算器,点击按钮即可

Java Applet 文件输入

excel - 如何通过列标题名称重新排列 Excel 列

excel - 通过VBA为一列中的每个单元格添加符号

javascript - 如何在删除字段时计算输入字段值并将其分配给另一个字段

Python - 更改数据框的标题颜色并将其保存到excel文件

vba - 参数数量错误或属性分配集合添加无效