您可以通過使用一點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