KutoolsforOffice — 一套方案,五大工具。事半功倍。

如何在 Excel 中对每 5 行或每 5 列的数据求平均值?

作者小杨修改日期

在 Excel 中处理大型数据集时,常常需要对每组行或列(例如每 5 行或每 5 列)计算平均值。虽然您可以手动输入公式,如 =AVERAGE(A1:A5)=AVERAGE(A6:A10)=AVERAGE(A11:A15),依此类推,但当数据包含数百甚至数千个单元格时,这种方法很快就会变得不切实际——不仅耗时,还容易出错。幸运的是,Excel 提供了多种自动化方案,让此类任务更高效、更省力!本文将为您介绍几种实用方法,包括基于公式的技巧、Excel 加载项、VBA 自动化以及数据透视表技术,助您轻松计算每 5 行或每 5 列的平均值,并为您的具体场景选出最佳解决方案。

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

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

使用 VBA 代码对每 5 行或每 5 列求平均值

使用数据透视表对每 5 行求平均值


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

如果您倾向于使用标准 Excel 公式,无需加载项或脚本,即可轻松实现每 5 行或每 5 列的平均值自动计算。此方法尤其适用于静态数据集——只需生成一组平均值,即可高效支持您的分析工作。但请注意确保数据引用准确,并妥善处理空白单元格或不规则间隔。

以下示例演示了如何对一列中每 5 行计算平均值:

1. 在第一个需要显示结果的单元格(例如 )C2)中输入以下公式:

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

其中,A2 是数据列的起始单元格,C2 是公式输出单元格,而 5 为间隔(即需计算平均值的行数)。请根据您的实际数据集灵活调整这些引用。

输入公式后,按 Enter,即可显示第一个平均值结果。参见截图:

使用公式计算每5行平均值的截图

2. 选中公式单元格,向下拖动填充柄,直至遇到错误值(例如,当剩余数据不足 5 个时,将显示)#DIV/0!),即可自动计算每 5 行的平均值。参见截图:

显示所有结果的截图

提示与注意事项:如果您的数据无法完美划分为固定大小的组,可使用 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 后,向右拖动填充柄,直至出现错误值。参见截图:

使用公式计算每5列平均值的截图

这种基于公式的方法非常适合快速完成一次性计算,或在您不想依赖额外工具时使用。然而,当数据的规模或结构发生变化时,可能需要调整公式或手动更新单元格范围,且在处理不完整数据组时需格外谨慎。


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

Kutools for Excel 提供了一种便捷的图形化解决方案——如果您经常需要对行分组求平均值,又不想处理复杂公式,此方法尤为适用。借助隔行插入分页符数据分页统计功能,只需几次点击,即可快速分段数据并批量计算平均值。该方法特别适合需在固定间隔上应用平均值,并直接在工作表中可视化分组结果的场景。

下载并安装 Kutools for Excel后,请按以下步骤操作:

1. 单击 KUTOOLS PLUS > 打印 > 隔行插入分页符。参见截图:

启用“每隔行插入分页符”功能的截图

2. 在隔行插入分页符对话框中,指定间隔(例如)5),即可在每 5 行后自动插入一个分页符,让 Kutools 智能分段您的数据。参见截图:

指定行间隔的截图

3. 接下来,单击 KUTOOLS PLUS > 打印 > 数据分页统计。参见截图:

启用 Kutools 分页小计功能的截图

4. 在数据分页统计对话框中,选择要计算平均值的列,并将计算方法设为平均值。参见截图:

选择“平均值”作为分页小计的截图

5. 单击确定,Kutools 将立即在每 5 行间隔处插入包含平均值的小计行。参见截图:

显示每5行平均值的截图

立即下载并免费试用 Kutools for Excel!

Kutools 让重复数据的分组与分析变得轻松简单,无需调整公式或编写任何脚本。但请注意,插入的分页符可能会影响打印布局和视图,若对您的报告无用,使用后可随时删除。


使用 VBA 代码对每 5 行或每 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. 要运行代码,请单击运行按钮按钮或按 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 中计算前 3 个或后 3 个数值的平均值?


最佳办公效率工具

🤖KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行   |  生成代码|  创建自定义公式  |  数据分析及生成图表|  调用 Kutools Functions……
热门功能查找、高亮或标记重复项   |  删除空白行   |  合并列或单元格且不丢失数据   |  不使用公式的四舍五入……
高级 LOOKUP多条件 VLookup  |  多值 VLookup  |   跨多工作表 VLookup   |   模糊查找……
高级下拉列表快速创建下拉列表   |  级联下拉列表   |  多选下拉列表……
列管理器添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列……
特色功能网格聚焦   |  设计视图   |增强编辑栏   | 工作簿和表管理器   |  资源库(自动文本)|  日期提取   |  汇总工作表  |  加密/解密单元格   | 按列表发送邮件   |  超级筛选   |   特殊筛选(筛选粗体单元格/斜体/删除线……) ......
精选 15 工具集12 文本工具添加文本删除特定字符,……)|   50+ 图表 类型甘特图,……)|   40+ 实用公式基于生日计算年龄,……)|   19 插入工具插入二维码从路径插入图片,……)|   12 转换工具小写金额转大写汇率转换,……)|   7 合并和拆分工具高级合并行分割单元格,……)|……更多
在您的首选语言中使用 Kutools – 支持英语、西班牙语、德语、法语、中文及 40+ 种其他语言!

使用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效。Kutools for Excel 提供 300 多项高级功能,助您提升生产力、节省时间。立即点击此处,获取您最需要的功能……


Office Tab 为 Office 带来标签式界面,让您的工作更轻松

  • 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读
  • 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
  • 将您的工作效率提升 50%,每天减少数百次鼠标点击!

所有 Kutools 插件,一个安装程序

Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。

ExcelWordOutlookTabsPowerPoint
  • 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
  • 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
  • 协同效果更佳— 在多个 Office 应用中实现高效协同
  • 30 天全功能试用— 无需注册,无需信用卡
  • 超值之选— 比单独购买插件更省钱