2017-03-29 54 views
0

引用单元格值的计算的字段我有我的数据,看起来像下面这样:如何创建一个Excel数据透视表

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

并且对于COL1总结了值的数据透视表。 另外我在另一个单元格(在另一个工作表)中有一个rete rete,我想在我的数据透视表中创建一个计算字段,并将该单元格中的汇率值与该值相乘。 这可能吗?怎么样? 原因是用户可能会更改单元格中的汇率,但他们不知道如何在计算字段中对其进行更改。 我知道我可以简单地使用计算值在源数据中添加一列,但如果这是可能的,我希望将其作为计算数据透视表字段来执行。

回答

1

您可以通过使用一点VBA将表“从属于”表转换为数据透视表来实现类似于您的操作。 See this answer I posted, that can be adapted to effectively achieve what you want.

或者,您可以将源数据中的各个总数乘以名为Exchange_Rate的命名区域,并且只要用户更改Exchange_Rate输入参数,就会刷新一次Pivot。

这里是如何看起来:

First Exchange Rate

...如果我改变EXCHANGERATE变量在橙色单元格中输入:

enter image description here

要做到这一点,我有一个相关工作表模块中的一小段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 

或者你可以录制宏,而在一个特定的汇率设定了一个计算字段,然后修改代码,以便率部分被替换,以匹配任何变动,橙电池: 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

+0

感谢,的确,我已经在包含汇率的单元格的更改事件中使用了vba方法,我正要添加我的代码,但存在您的代码... 但我最初的问题是如果这是在所有可能的直接(无vba ...) 无论如何感谢您的努力!我投了票,但没有把它作为上述原因的答案。 – rodedo

+0

你的问题只是询问是否可能。你不提到你不想使用VBA。当你问你的问题时,你需要澄清这些事情,这样像我这样的人最终不会浪费我们的时间去追求一种你不会使用的方法。 – jeffreyweir

相关问题