如何在Excel中計算動態範圍的平均值?
在 Excel 中,您可能經常需要計算一個非固定範圍的平均值,這個範圍可以動態變化——例如根據輸入值、更新條件,或當分析的數據持續增長或變化時。這在報告、儀表板或任何基於靈活條件進行數據彙總的情況下非常常見。幸運的是,Excel 提供了多種實用方法,從公式到高級工具,來計算動態範圍的平均值,每種方法都適用於特定場景。以下將介紹幾種計算此類平均值的方法,以及它們的價值、應用場景和操作技巧。
方法1:在Excel中計算動態範圍的平均值
當範圍的起點或終點經常變化時(如每月銷售額或累計總數),公式是一種通用的方法來計算動態範圍的平均值。透過讓輸入單元格決定動態範圍的邊界,您可以快速適應更新的數據,而無需重寫公式。
為此,選擇一個空白單元格,例如單元格C4,並輸入以下公式:
=IF(C2=0,"NA",AVERAGE(A2:INDEX(A:A,C2)))
然後按下 Enter 鍵查看結果平均值。

該公式自動調整範圍以包含從A2到C2指定行之間的所有單元格,因此當C2的值改變時,平均範圍也會隨之改變。這使得在新數據進入或您希望分析特定子集時,範圍可以靈活擴展或收縮。
注意:
(1) 在這個公式 =IF(C2=0,"NA",AVERAGE(A2:INDEX(A:A,C2)))
中:A2 代表要平均的範圍的第一個單元格,而 C2 指向目標範圍最後一個單元格的行號所在的單元格。根據您自己的數據結構修改這些引用。確保C2單元格指向有效的行,否則會得到意外的結果或 "NA"。
(2) 或者,您可以使用:
=AVERAGE(INDIRECT("A2:A"&C2))
這種方法同樣有效,因為它為範圍創建了一個文本引用,INDIRECT
則動態解讀該引用。然而,在處理關閉的工作簿或大型數據集時請小心,因為它可能會影響計算速度,對於易變數據不如 INDEX 高效。
實用提示:當您的數據不斷增長(例如每天添加新行)時,您可以使用 COUNTA 或 COUNT 函數自動設置上限單元格引用——這確保您的動態範圍始終覆蓋最新條目。
適用場景:每日數據記錄、時間序列條目,或任何由用戶輸入或摘要單元格引導範圍開始或結束的分析。優勢:直接,不需要額外工具。限制:如果行位置大幅改變,則需要手動調整公式。
根據條件計算動態範圍的平均值
在某些情況下,您的動態範圍不是由位置定義,而是由特定條件(例如區域、類別或用戶自定義標籤)定義的,您可以結合動態命名範圍和 INDIRECT 等函數來調整計算。這對於用戶從下拉選單中選擇並立即看到相關平均值的儀表板尤其有用。
首先,按標題行或列對數據集進行分組。以下是操作步驟:
1. 選擇整個區域(例如 A1:D11),然後點擊 根據所選內容創建名稱 按鈕 在 名稱管理器 面板中。在彈出的對話框中,勾選 首行 和 最左列 選項,然後點擊 確定。此步驟將自動為行和列中的數據分配命名範圍,從而簡化公式的引用。
2. 在您選擇的空白單元格中,輸入以下公式:
=AVERAGE(INDIRECT(G2))
這裡,G2 是用戶輸入或選擇行或列標題名稱的條件單元格。當 G2 改變時(例如從 "Region1" 改為 "Region2"),公式將動態計算相應範圍的平均值。請始終確保 G2 的輸入與定義的名稱完全匹配(包括大小寫敏感性),以避免 #REF! 錯誤。
最佳適用:報告儀表板、基於條件的分析。優勢:通過用戶互動實現非常靈活的動態報告或單一單元格分析。限制:依賴正確的名稱管理和一致的輸入值。
在Excel中根據填色自動計數/求和/平均值單元格
有時候,您會用填色標記單元格,然後再對這些單元格進行計數/求和或計算其平均值。Kutools for Excel 的 按顏色統計 功能可以輕鬆解決這一問題。

Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取
VBA程式碼 – 使用巨集計算動態範圍的平均值
對於更先進的動態行為,例如平均最後 N 行、基於多個動態條件進行平均甚至跨多個工作表合併數據,您可以創建自定義的 VBA 巨集。當內建公式變得過於複雜,或者您需要能適應頻繁結構變化的自動化時,這種方法特別有用。
例如,您可能希望計算 A 列中最後 N 行的平均值,其中 N 由用戶輸入,或者平均來自不連續、用戶指定範圍的值。
1. 轉到開發工具 > Visual Basic 打開 Microsoft Visual Basic for Applications 編輯器。然後選擇 插入 > 模塊,並將以下 VBA 代碼粘貼進去:
Sub DynamicAverage_LastNRows()
Dim ws As Worksheet
Dim rng As Range
Dim lastRow As Long
Dim N As Long
Dim result As Double
Dim xTitleId As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set ws = Application.ActiveSheet
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
N = Application.InputBox("How many last rows to average?", xTitleId, 5, Type:=1)
If N <= 0 Or N > lastRow - 1 Then
MsgBox "Invalid input for N!", vbExclamation
Exit Sub
End If
Set rng = ws.Range("A" & lastRow - N + 1, "A" & lastRow)
result = Application.WorksheetFunction.Average(rng)
MsgBox "Average of the last " & N & " rows in column A: " & result, vbInformation
End Sub
2。點擊 按鈕以運行宏。在彈出的對話框中,輸入您想平均的最後幾行數字(例如 5、10 等),然後按下 OK。結果將會顯示在消息框中。
要根據更複雜的條件(例如基於條件或多個工作表)進行平均值計算,您可以相應地調整 VBA 代碼——例如,添加 InputBoxes 作為條件值,或循環遍歷多個工作表以在平均之前合併範圍。
此方法提供了最大的靈活性,能夠自動化複雜或重複的動態平均值計算。但請確保啟用宏並在受信任的工作簿中使用此方法以避免安全風險。運行新宏之前保存您的工作,並在自動化更改時考慮創建備份。
優點:允許自動化,處理複雜或大數據場景,可針對非常具體的業務邏輯進行定制。缺點:需要基本的 VBA 知識,並且當結構改變時需要維護過程。
最佳 Office 生產力工具
🤖 | Kutools AI 助手:以智能執行為基礎,革新數據分析 |生成程式碼 | 創建自訂公式 | 分析數據並生成圖表 | 調用 Kutools 增強函數… |
熱門功能:查找、選取項目的背景色或標記重複值 | 刪除空行 | 合併列或單元格且不遺失數據 | 四捨五入(免公式)... | |
高級 LOOKUP:多條件 VLookup|多值 VLookup|多表查找|模糊查找... | |
高級下拉列表:快速創建下拉列表 |依賴型下拉列表 | 多選下拉列表... | |
列管理器:添加指定數量的列 | 移動列 | 切換隱藏列的顯示狀態 | 比較區域及列... | |
精選功能:網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿及工作表管理器 | 資源庫(快捷文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按列表發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/傾斜/刪除線...)... | |
15 大工具集:12 項文本工具(添加文本、刪除特定字符…)|50+ 儀表 類型(甘特圖等)|40+ 實用 公式(基於生日計算年齡等)|19 項插入工具(插入QR码、根據路徑插入圖片等)|12 項轉換工具(金額轉大寫、匯率轉換等)|7 項合併與分割工具(高級合併行、分割儲存格等)|...及更多 |
運用 Kutools for Excel,全面提升您的 Excel 技能,體驗前所未有的高效。 Kutools for Excel 提供超過300 項進階功能,讓您提升工作效率、節省時間。 點此尋找您最需要的功能...
Office Tab 為 Office 帶來分頁介面,讓您的工作更加輕鬆簡單
- 在 Word、Excel、PowerPoint 中啟用分頁編輯與閱讀。
- 在同一視窗的新分頁中打開與創建多份文件,而非開啟新視窗。
- 提升您的生產力50%,每日可幫您減少數百次鼠標點擊!
所有 Kutools 外掛,一次安裝
Kutools for Office 套裝整合了 Excel、Word、Outlook 和 PowerPoint 的外掛,外加 Office Tab Pro,非常適合需要跨 Office 應用程式協同作業的團隊。





- 全合一套裝 — Excel、Word、Outlook及 PowerPoint 外掛 + Office Tab Pro
- 一鍵安裝,一份授權 — 幾分鐘完成設置(支援 MSI)
- 協同運作更順暢 — Office 應用間無縫提升生產力
- 30 天全功能試用 — 無需註冊、無需信用卡
- 最超值 — 一次購買,節省單獨外掛費用