2017-03-29 52 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

相關問題