Skip to main content

Kutools for Office — 一套工具,五種功能。完成更多工作。

如何在 Excel 中對每 5 行或列求平均值?

Author Xiaoyang Last modified

在 Excel 中處理大型數據集時,通常需要為每組行或列進行平均計算——例如每 5 行或每 5 列。雖然您可以手動插入公式,如 =AVERAGE(A1:A5)=AVERAGE(A6:A10)=AVERAGE(A11:A15),但如果您有數百甚至上千個單元格,這種方法很快就會變得不切實際。手動重複這些操作既耗時又容易出錯。幸運的是,Excel 提供了多種自動化此任務的方式,讓數據分析更加高效且減少繁瑣工作。本文將介紹幾種針對每 5 行或列求平均值的實用方法,包括基於公式的解決方案、Excel 插件、VBA 自動化以及資料透視表技術,以幫助您選擇最適合您的場景的解決方案。

使用公式對每 5 行或列求平均值

使用 Kutools for Excel 對每 5 行求平均值

使用 VBA 程式碼對每 5 行或列求平均值

使用資料透視表對每 5 行求平均值


使用公式對每 5 行或列求平均值

如果您更喜歡使用標準的 Excel 公式,則無需外掛程式或腳本就能自動計算每 5 行或列的平均值。這種方法特別適用於靜態數據集,只需生成一組組的平均值來支持您的分析即可。然而,需要注意正確引用數據並處理任何空白或不規則間隔。

以下範例展示了如何在一列中計算每 5 行的平均值:

1. 在您希望顯示結果的第一個單元格(例如 C2)中輸入以下公式:

=AVERAGE(OFFSET($A$2,(ROW()-ROW($C$2))*5,,5,))

這裡,A2 是數據列的起始單元格,C2 是公式輸出單元格,5 是間隔值(即要平均的行數)。請根據實際數據調整這些引用。

輸入公式後,按下 Enter 鍵。第一個平均結果將會顯示出來。請參閱截圖:

a screenshot of using formula to calculate the average of every5 rows

2. 選擇公式單元格,然後拖動填滿控制點向下拖動,直到遇到錯誤值(例如 #DIV/0!,如果剩餘數據不足 5 個值時)。這將自動為每組 5 行獲取平均值。請參閱截圖:

a screenshot showing all results

提示與注意事項:如果您的數據無法完美分組,可以使用 IFERROR() 等錯誤處理函數來抑制錯誤值,例如:

=IFERROR(AVERAGE(OFFSET($A$2,(ROW()-ROW($C$2))*5,,5,)),"")

要沿著一行計算每 5 列的平均值,應用以下公式(放置於 A3 並向右拖動):

=AVERAGE(OFFSET($A$1,,(COLUMNS($A$3:A3)-1)*5,,5))

這裡,A1 是起始單元格,A3 是公式輸出單元格,5 是每個組中的列數。根據數據佈局需求調整單元格引用。
輸入公式並按下 Enter,拖動填滿控制點向右拖動,直到達到錯誤值。請參閱截圖:

a screenshot of using formula to calculate the average of every5 columns

這種基於公式的解決方案非常適合快速一次性計算,或者您不想使用其他工具的情況下。然而,當數據大小或形狀改變時,可能需要調整公式或手動更新單元格範圍,並且處理不完整的組可能需要額外小心。


使用 Kutools for Excel 對每 5 行求平均值

Kutools for Excel 提供了一個方便的圖形化解決方案,如果您經常需要對行組進行平均計算而不必管理複雜的公式。通過「隔行插入分頁符」和「數據分頁統計」功能,您可以快速分割數據並在幾次點擊內完成批量平均值計算。這種方法特別適用於想要在可重複的間隔上應用平均值並將分組直接可視化在工作表中的情況。

下載並安裝 Kutools for Excel 後,請按照以下步驟操作:

1. 點擊 Kutools Plus > 列印 > 隔行插入分頁符。請參閱截圖:

a screenshot of enabling the Insert Page Break Every Row feature

2. 在「隔行插入分頁符」對話框中,指定間隔(例如 5)以每隔 5 行插入一個分頁符。這樣 Kutools 會自動分割數據。請參閱截圖:

a screenshot of specifying the interval of rows

3. 接下來,點擊 Kutools Plus > 列印 > 數據分頁統計。請參閱截圖:

a screenshot of enabling the Paging Subtotals feature of Kutools

4. 在「數據分頁統計」對話框中,選擇您要平均的列,然後選擇「平均」作為計算方式。請參閱截圖:

a screenshot of choosing Average as the paging subtotals

5. 點擊「確定」,Kutools 將立即在每個 5 行間隔插入帶有平均值的小計行。請參閱截圖:

a screenshot showing the average of every5 rows

立即下載並免費試用 Kutools for Excel!

Kutools 讓重複數據分組和分析變得輕鬆完成,而無需調整公式或編寫任何腳本。但是,請注意,插入的分頁符可能會影響列印佈局和檢視效果,因此如果不適用於您的報告,可以在使用後刪除它們。


使用 VBA 程式碼對每 5 行或列求平均值

如果您需要反覆計算固定數量行或列的平均值,尤其是在處理大數據或不斷變化的數據集時,使用 VBA 自動化這一過程可以節省大量的人工勞動。VBA 可以讓您遍歷數據,按需分組並輸出每組的平均結果。這種方法特別適合高級用戶或處理動態數據塊的用戶,避免了公式混亂工作表。以下是您可以輕鬆適應的一個通用 VBA 宏。

自動化每 5 行求平均值

1. 點擊開發工具 > Visual Basic 打開Microsoft Visual Basic for Applications 視窗。然後,點擊插入 > 模組,並將下面的代碼粘貼到模組中:

Sub AverageEvery5Rows()
    Dim DataRange As Range
    Dim OutputCell As Range
    Dim GroupSize As Integer, i As Integer, j As Integer
    Dim LastRow As Long, StartRow As Long
    Dim SumValue As Double, CountValue As Integer
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set DataRange = Application.InputBox("Select the data range to average (single column)", xTitleId, Selection.Address, Type:=8)
    Set OutputCell = Application.InputBox("Select the first cell for output", xTitleId, , Type:=8)
    GroupSize = Application.InputBox("Enter group size (e.g. 5)", xTitleId, 5, Type:=1)
    
    On Error GoTo 0
    
    If DataRange Is Nothing Or OutputCell Is Nothing Then Exit Sub
    
    LastRow = DataRange.Rows.Count
    StartRow = 1
    i = 0
    
    Do While StartRow <= LastRow
        SumValue = 0
        CountValue = 0
        
        For j = 0 To GroupSize - 1
            If (StartRow + j) <= LastRow Then
                SumValue = SumValue + DataRange.Cells(StartRow + j, 1).Value
                CountValue = CountValue + 1
            End If
        Next j
        
        If CountValue > 0 Then
            OutputCell.Offset(i, 0).Value = SumValue / CountValue
        Else
            OutputCell.Offset(i, 0).Value = ""
        End If
        
        StartRow = StartRow + GroupSize
        i = i + 1
    Loop
End Sub

2. 要執行代碼,點擊 Run button 按鈕或按下 F5。選擇您的數據範圍(一列),然後選擇輸出的起始單元格,並指定組大小(例如 5)。該宏將輸出每組 5 行的平均值,在指定的輸出列中依次排列。

您可以使用類似的宏來沿著一行計算每 5 列的平均值。

自動化每 5 列求平均值:

Sub AverageEveryNColumns()
    Dim DataRange As Range
    Dim OutputCell As Range
    Dim GroupSize As Long
    Dim totalCols As Long, totalRows As Long
    Dim startCol As Long, endCol As Long, outCol As Long
    Dim v As Variant
    Dim r As Long, c As Long
    Dim sumVal As Double, cntVal As Long
    Dim xTitleId As String
    xTitleId = "KutoolsforExcel"
    On Error Resume Next
    Set DataRange = Application.InputBox("Select the data range (single rows)", _
                                         xTitleId, Selection.Address, Type:=8)
    Set OutputCell = Application.InputBox("Select the first cell for output (results will spill to the right)", _
                                          xTitleId, , Type:=8)
    GroupSize = Application.InputBox("Enter group size (e.g. 5)", xTitleId, 5, Type:=1)
    On Error GoTo 0
    
    If DataRange Is Nothing Or OutputCell Is Nothing Then Exit Sub
    If GroupSize < 1 Then
        MsgBox "Group size must be >= 1.", vbExclamation
        Exit Sub
    End If
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Dim prevCalc As XlCalculation
    prevCalc = Application.Calculation
    Application.Calculation = xlCalculationManual
    
    totalCols = DataRange.Columns.Count
    totalRows = DataRange.Rows.Count
    v = DataRange.Value
    outCol = 0
    For startCol = 1 To totalCols Step GroupSize
        endCol = startCol + GroupSize - 1
        If endCol > totalCols Then endCol = totalCols
        sumVal = 0
        cntVal = 0
        For r = 1 To totalRows
            For c = startCol To endCol
                If Not IsEmpty(v(r, c)) Then
                    If IsNumeric(v(r, c)) Then
                        sumVal = sumVal + CDbl(v(r, c))
                        cntVal = cntVal + 1
                    End If
                End If
            Next c
        Next r
        If cntVal > 0 Then
            OutputCell.Offset(0, outCol).Value = sumVal / cntVal
        Else
            OutputCell.Offset(0, outCol).Value = ""
        End If
        outCol = outCol + 1
    Next startCol
CleanExit:
    Application.Calculation = prevCalc
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub

使用資料透視表對每 5 行求平均值

另一種實用的方法是使用資料透視表結合序號或索引列來分組數據,從而計算每 5 行的組平均值。這種方法特別適用於處理結構化表格數據的用戶,他們需要快速、交互式的摘要,而無需編寫公式或使用外掛程式。資料透視表能動態處理數據變化,並支持靈活分組——非常適合處理大型數據集或定期報告任務。

以下是使用輔助列和資料透視表執行此操作的方法:

1. 在數據旁新增一列“索引”或“分組”,標記每 5 行為一組。在第一行數據(B2)中輸入:

=INT((ROW()-ROW($A$2))/5)+1

這個公式會按順序標記每一行,為每 5 行分配相同的分組號碼。將該公式填滿至整個數據集。

2. 選擇您的數據和新的索引列,然後點擊插入 > 資料透視表。在資料透視表創建對話框中,確認您的數據範圍並選擇放置資料透視表的位置。

3. 在新創建的資料透視表字段列表中,將“分組”字段拖到區域,並將值字段(例如“銷售額”)拖到區域。

4. 點擊值區域中的下拉選單,選擇“值字段設置”,並選擇“平均”。

現在,您的資料透視表顯示了原始數據每 5 行的平均值,由輔助列方便地分組。

使用資料透視表方法的主要優勢在於其靈活性和易於更新,尤其是當源數據發生變化時。然而,它需要添加輔助列,可能不適合需要保持精確格式或未修改數據的情況。


相關文章:

如何隨著新數字進入,對某一列最後 5 個值求平均值?

如何在 Excel 中對前三或後三個值求平均值?


最佳 Office 生產力工具

🤖 Kutools AI 助手:以智能執行為基礎,革新數據分析 生成程式碼 創建自訂公式 分析數據並生成圖表 調用 Kutools 增強函數
熱門功能查找、選取項目的背景色或標記重複值刪除空行合併列或單元格且不遺失數據四捨五入(免公式)...
高級 LOOKUP多條件 VLookup多值 VLookup多表查找模糊查找...
高級下拉列表快速創建下拉列表 依賴型下拉列表 多選下拉列表...
列管理器添加指定數量的列移動列切換隱藏列的顯示狀態比較區域及列...
精選功能網格聚焦 設計檢視 增強編輯欄 工作簿及工作表管理器 資源庫(快捷文本) 日期提取器 合併資料 加密/解密儲存格 按列表發送電子郵件 超級篩選 特殊篩選(篩選粗體/傾斜/刪除線...)...
15 大工具集12 項文本工具添加文本刪除特定字符…)50+ 儀表 類型甘特圖等)40+ 實用 公式基於生日計算年齡等)19 項插入工具插入QR码根據路徑插入圖片等)12 項轉換工具金額轉大寫匯率轉換等)7 項合併與分割工具高級合併行分割儲存格等)...及更多
使用 Kutools,語言任你選 — 支援英語、西班牙語、德語、法語、中文及超過40 種語言!

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