您可以通过使用一点VBA将表“从属于”表转换为数据透视表来实现类似于您的操作。 See this answer I posted, that can be adapted to effectively achieve what you want.
或者,您可以将源数据中的各个总数乘以名为Exchange_Rate的命名区域,并且只要用户更改Exchange_Rate输入参数,就会刷新一次Pivot。
这里是如何看起来:
...如果我改变EXCHANGERATE变量在橙色单元格中输入:
要做到这一点,我有一个相关工作表模块中的一小段VBA,它简单地监视输入单元的任何更改,然后刷新数据透视表,以便数据透视表反映底层源数据中的更新值:
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。
感谢,的确,我已经在包含汇率的单元格的更改事件中使用了vba方法,我正要添加我的代码,但存在您的代码... 但我最初的问题是如果这是在所有可能的直接(无vba ...) 无论如何感谢您的努力!我投了票,但没有把它作为上述原因的答案。 – rodedo
你的问题只是询问是否可能。你不提到你不想使用VBA。当你问你的问题时,你需要澄清这些事情,这样像我这样的人最终不会浪费我们的时间去追求一种你不会使用的方法。 – jeffreyweir