我有一個測量表,每個數據點都被測量了多次。
我想建立一個資料透視圖,它顯示平均值並使用該值的標準差作為誤差線。
這是我到目前為止所擁有的:
- 我的資料表有一個類別欄位(日期和時間)和一個值欄位。
- 我有一個數據透視表,它產生平均值,它還產生標準差
- 我的圖表目前將平均值和標準差顯示為單獨的資料系列。
我想要 stdDev 系列(橘色)不是在圖表中,但有平均係列(藍色)來顯示誤差線。這些誤差線應具有 stdDev 值的大小。
我可以找到誤差線選項,但我沒有找到將(計算的)StdDev 指定為幅度的方法。
給出的選項,僅使用標準差跨越資料透視表的值。
這是不是我想要的是。
但如果我進入進階選項:
我也只能找到方法來指定固定的自訂值。
雖然該欄位似乎允許選擇表格範圍,但我只能這樣做具體的部分。即我可以在資料透視表中選擇相應的值並取得我的圖表:
誤差線現在是我想要的,但是資料透視表結構的任何變更(即新增日期)都會失去連線:
我希望誤差線始終使用同一行的計算值 - 這可以做到嗎?
(而且我也想隱藏橙色系列,但那是次要的。)
答案1
使用 VBA,我將建立一個事件每當資料透視表中的任何內容更新時都會觸發它。在這種情況下,我將編寫程式碼來填入錯誤欄的正確儲存格參考。因此,每當資料透視圖更新時,誤差線參考也會更新。
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim rng As Range
Set rng = Me.PivotTables("PivotTable1").DataBodyRange.PivotField.DataRange.Offset(, 1)
With Me.ChartObjects("Chart 1").Chart.SeriesCollection(1)
.HasErrorBars = True
.ErrorBar Direction:=xlY, Include:=xlBoth, _
Type:=xlErrorBarTypeCustom, _
Amount:=rng, _
MinusValues:=rng
End With
End Sub
您可能需要將資料透視表名稱"PivotTable1"
和圖表名稱變更"Chart 1"
為工作表中的實際名稱。
這段程式碼必須放在VBA編輯器中對應的工作表模組中,可以使用Alt+開啟F11。