亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
1432
2025-03-31
excel圖表制作:給多個數據系列添加趨勢線的加載宏
我們手工給多個散點圖系列添加了一條趨勢線,如下圖 1 所示。
圖 1
在圖表中,最開始有 3 個數據系列,其公式分別為:
=系列(Sheet1!$ C $ 2,Sheet1!$ B $ 3:$ B $ 11,Sheet1!$ C $ 3:$ C $ 11,1)
=系列(Sheet1!$ E $ 2,Sheet1!$ D $ 3:$ D $ 11,Sheet1!$ E $ 3:$ E $ 11,2)
=系列(Sheet1!$ G $ 2,Sheet1!$ F $ 3:$ F $ 11,Sheet1!$ G $ 3:$ G $ 11,3)
注意,圖表的系列公式一般有 4 個參數:
= SERIES(系列名稱,X 值,Y 值,繪圖順序值)
后來,我們添加了一個所謂的“趨勢線”的新系列,合并了原來的 3 個系列的 X 值和 Y 值,其公式為:
= SERIES(“ 趨勢線”,
(Sheet1!$ B $ 3:$ B $ 11,Sheet1!$ D $ 3:$ D $ 11,Sheet1!$ F $ 3:$ F $ 11),
(Sheet1!$ C $ 3:$ C $ 11,Sheet1!$ E $ 3:$ E $ 11,Sheet1!$ G $ 3:$ G $ 11),
4)
組成 X 值和 Y 值的多個單元格區域被包含在括號中。
下面,我們使用 VBA 代碼來自動添加趨勢線。
代碼執行的操作是對圖表中的系列進行計數,依次讀取每個系列公式,分解其參數,然后將單獨的 X 和 Y 值連接為組合的 X 和 Y 值。接著,代碼將應用系列公式的參數添加新系列,隱藏標記并添加趨勢線。
Sub ComputeMultipleTrendline() If Not ActiveChart Is Nothing Then With ActiveChart Dim ixSeries As Long For ixSeries = 1 To .SeriesCollection.Count Dim SeriesFormula As String SeriesFormula = ActiveChart.SeriesCollection(ixSeries).Formula SeriesFormula = Mid$(SeriesFormula, InStr(SeriesFormula, “(“)+ 1) SeriesFormula = Left$(SeriesFormula, Len(SeriesFormula) – 1) Dim SeriesArgs As Variant SeriesArgs = Split(SeriesFormula, “,”) Dim XAddress As String, YAddress As String XAddress = XAddress & SeriesArgs(LBound(SeriesArgs) + 1) &”,” YAddress = YAddress & SeriesArgs(LBound(SeriesArgs) + 2) &”,” Next XAddress= “=(” & Left$(XAddress, Len(XAddress) – 1) & “)” YAddress= “=(” & Left$(YAddress, Len(YAddress) – 1) & “)” With ActiveChart.SeriesCollection.NewSeries .Name =”趨勢線” .XValues = XAddress .Values= YAddress .Format.Line.Visible = False .MarkerStyle = xlMarkerStyleNone With.Trendlines.Add.Format.Line .DashStyle = msoLineSolid .ForeColor.ObjectThemeColor = msoThemeColorText1 .ForeColor.Brightness= 0 EndWith End With End With End If End Sub
在工作表中選取圖表,運行上述代碼,可以看到圖表中自動添加了一條趨勢線。
安裝該加載宏后, Excel 功能會添加一個稱為“ Multi Trendline” 的選項卡,帶有一個稱為“ Multi ScatterTrendline ”的命令按鈕,如下圖 2 所示。
圖 2
在工作表中選擇圖表,運行“ Multi Scatter Trendline”命令,會彈出一個對話框,可以選擇要添加趨勢線的圖表數據系列前的標記,如下圖 3 所示。
圖 3
選擇要添加趨勢線的數據系列后,依次“確定”按鈕,圖表中會自動繪制一條趨勢線,如下圖 4 所示。
圖 4
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。