如何在 Excel 中使用数据透视表按天、月、季度或小时计算平均值?
处理包含日期和时间字段的大型数据集时,您通常需要在 Excel 中按不同时间段(如天、月、季度或小时)计算平均值。若采用手动筛选并逐一计算每个时间段的数据,不仅耗时费力,还极易出错——尤其当您的交易记录或事件日志跨越较长时间段或涉及多个类别时,挑战更为显著。幸运的是,Excel 提供了多种高效解决方案:无论是灵活的数据透视表、便捷的内置公式、专用插件,还是可自动执行任务的宏,都能显著提升效率。根据您的工作流程及对 Excel 功能的熟悉程度,每种方法都各具优势,适用于不同场景。
- 使用数据透视表按天/月/季度/小时计算平均值
- 使用 Kutools for Excel 从每小时数据批量计算每日/每周/每月/每年平均值
- 使用 Excel 公式按天/月/季度/小时计算平均值
- 通过 VBA 代码对数据分组,自动计算平均值
使用数据透视表按天/月/季度/小时计算平均值
Excel 的数据透视表功能是一款强大的数据汇总与分析工具,特别适合快速计算离散时间段(如天、月、季度或小时)的平均值。以下方法无需手动筛选或重复计算,即可为您生成交互式摘要,并在数据更新时轻松调整。
1. 选择包含标题的整个原始数据表,然后点击插入选项卡 > 数据透视表。


2. 在弹出的“创建数据透视表”对话框中,若希望将摘要置于当前工作表,请选择现有工作表,并指定要放置数据透视表的单元格以设置位置,然后单击确定。
注意:若要在新工作表中显示数据透视表,请选择新工作表选项。请确保所选位置不与现有数据重叠,以免触发覆盖警告。
3. 在数据透视表字段列表窗格(通常位于右侧)中,将您的日期/时间列拖入行区域,并将金额(数值数据)列拖入值区域。此初始设置将按每条记录的时间戳汇总您的数据。


4. 要按特定周期组织结果,请在数据透视表中右键单击任意日期条目,然后在上下文菜单中选择组合。此功能可将数据条目合并为天、月、季度或小时等时间间隔。
5. 在“组合”对话框中,通过勾选按字段中您偏好的分组周期(例如)月)进行设置,然后单击确定以应用。之后,右键单击金额总和值,选择值汇总依据> 平均值,数据透视表将立即显示每个时间段组的平均值,便于快速比较与分析。



如需使用新数据刷新基于周期的平均值,只需点击分析选项卡 > 刷新,即可更新数据透视表。总之,数据透视表提供了一种高效、直观的方式来计算和查看指定时间间隔内的平均值;但若您的分组结构发生变化或数据格式不一致,则可能需要手动重新配置。
使用 Kutools for Excel 从每小时数据批量计算每日/每周/每月/每年平均值

如果您经常需要从详细的每小时数据集中计算特定周期(如每日、每周、每月或每年)的平均值,手动分组和计算不仅重复繁琐,还容易出错。Kutools for Excel 提供了专门的实用工具来简化这一流程,例如 To Actual 和高级合并行功能,可轻松实现日期格式化与批量聚合,为您节省大量时间!
Kutools for Excel——通过 300 多款必备工具全面增强 Excel 功能,助您工作更快速、更轻松,并借助 AI 功能实现更智能的数据处理与高效办公!立即获取
1. 选择包含日期和时间的单元格,然后将其格式化为目标周期。例如,若要获取每日平均值,请先选中您的数据,依次点击开始 > 数字格式 > 短日期,即可将时间戳转换为仅含日期的值。
2. 选中完整数据集(包括已格式化的日期和数值),然后点击 Excel 功能区中的 Kutools> 内容> 高级合并行。
3. 在打开的对话框中,从列表中选择您的日期/时间列,将其标记为主键,再选择数值列(例如金额),并将其配置为计算> 平均值。单击确定确认后,Kutools 将立即为每个不同日期计算平均值。
您指定时间段的平均值将立即计算完成,大幅简化分析流程。若您的日期分组显示为月份或年份而非具体天数,结果会自动按相应周期聚合。您还可使用 Kutools 的格式中的应用日期格式功能重新设置日期格式,并通过 Kutools 的 To Actual 完成最终配置。
Kutools for Excel——通过 300 多款必备工具全面增强 Excel 功能,助您工作更快速、更轻松,并借助 AI 功能实现更智能的数据处理与高效办公!立即获取
使用 Excel 公式按天/月/季度/小时计算平均值
对于偏好直接使用公式计算、不愿依赖数据透视表或插件的用户,Excel 内置函数如 AVERAGEIFS、SUMIFS/COUNTIFS 提供了一种灵活的基于单元格的计算方式,可轻松得出特定周期的平均值。此方法特别适用于需要自定义计算、希望避免刷新表格,或将结果直接置于数据旁的场景。
以下是使用公式计算每日平均值的示例:
1. 假设您的数据中日期位于 A 列(A2:A100),数值数据位于 B 列(B2:B100)。在新列中(例如单元格 C2),输入以下公式,即可计算该行对应日期(如 A2 中的日期)的平均值:1. 假设您的数据中日期位于 A 列(A2:A100),数值数据位于 B 列(B2:B100)。在新列中(例如单元格 C2),输入以下公式,即可计算该行对应日期(如 A2 中的日期)的平均值:
=AVERAGEIFS(B$2:B$100, A$2:A$100, A2) 2. 按 Enter 应用公式。要为所有日期计算平均值,请将公式向下复制到相邻的数据列中。 提示
:如需每日平均值仅在每个唯一日期显示一次,请先对数据按日期排序或筛选出唯一日期,再相应地应用公式。
通过 VBA 代码对数据分组,自动计算平均值
对于经常处理超大数据集或需要针对不同周期重复计算平均值的用户,使用 VBA 宏自动化工作流可以显著提高一致性和效率。宏可以完全消除手动重复操作,对天、月、季度或小时进行分组并计算平均值。此方法非常适合高级 Excel 用户以及需要频繁重新运行计算或适配新工作表的场景。
1. 要开始操作,请单击开发工具 > Visual Basic,打开 VBA 编辑器。当 Microsoft Visual Basic for Applications 窗口出现后,单击插入 > 模块,并将以下代码复制到该模块中:
Sub AverageByPeriod()
Dim ws As Worksheet
Dim dataRange As Range
Dim periodCol As String, valueCol As String
Dim dict As Object
Dim cell As Range
Dim periodKey As String
Dim i As Long, lastRow As Long
Dim sumDict As Object, countDict As Object
Set ws = ActiveSheet
periodCol = "A" ' Date/Time column
valueCol = "B" ' Value column
lastRow = ws.Cells(ws.Rows.Count, periodCol).End(xlUp).Row
Set dict = CreateObject("Scripting.Dictionary")
Set sumDict = CreateObject("Scripting.Dictionary")
Set countDict = CreateObject("Scripting.Dictionary")
For i = 2 To lastRow
' Grouping by month example; change to format for day/hour/quarter if needed
periodKey = Format(ws.Cells(i, periodCol).Value, "yyyy-mm")
If Not dict.Exists(periodKey) Then
dict.Add periodKey, dict.Count + 1
sumDict.Add periodKey, ws.Cells(i, valueCol).Value
countDict.Add periodKey, 1
Else
sumDict(periodKey) = sumDict(periodKey) + ws.Cells(i, valueCol).Value
countDict(periodKey) = countDict(periodKey) + 1
End If
Next i
ws.Cells(1, 4).Value = "Period"
ws.Cells(1, 5).Value = "Average"
i = 2
Dim k As Variant
For Each k In dict.Keys
ws.Cells(i, 4).Value = k
ws.Cells(i, 5).Value = sumDict(k) / countDict(k)
i = i + 1
Next k
End Sub 2. 粘贴代码后,单击
按钮即可执行宏。该宏将读取您的数据(从 A 列和 B 列第 2 行开始),按您选择的时间周期(当前设置为“月”)进行分组,并在 D 列和 E 列中显示每组的平均值。
提示:
- 若要按天分组,请修改
Format(..., "yyyy-mm-dd")这一行。 - 对于按季度分组,请使用:
periodKey = "Q" & WorksheetFunction.RoundUp(Month(ws.Cells(i, periodCol).Value) /3,0) & "-" & Year(ws.Cells(i, periodCol).Value) - 请始终确认您的列()
periodCol、valueCol)与数据布局一致。
注意事项:
- 如果出现错误或空白结果,请检查您的分组列中是否存在空白单元格或非日期值。
- 根据需要调整列分配——如果您的数据并非起始于 A 列和 B 列,请相应更新
periodCol和valueCol。 - 运行宏前,请务必备份工作内容,以防意外修改数据。
演示:从每小时数据计算每日/每周/每月/每年平均值
相关文章:
最佳办公效率工具
| 🤖 | KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行 | 生成代码| 创建自定义公式 | 数据分析及生成图表| 调用 Kutools Functions…… |
| 热门功能:查找、高亮或标记重复项 | 删除空白行 | 合并列或单元格且不丢失数据 | 不使用公式的四舍五入…… | |
| 高级 LOOKUP:多条件 VLookup | 多值 VLookup | 跨多工作表 VLookup | 模糊查找…… | |
| 高级下拉列表:快速创建下拉列表 | 级联下拉列表 | 多选下拉列表…… | |
| 列管理器:添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列…… | |
| 特色功能:网格聚焦 | 设计视图 |增强编辑栏 | 工作簿和表管理器 | 资源库(自动文本)| 日期提取 | 汇总工作表 | 加密/解密单元格 | 按列表发送邮件 | 超级筛选 | 特殊筛选(筛选粗体单元格/斜体/删除线……) ...... | |
| 精选 15 工具集:12 文本工具(添加文本,删除特定字符,……)| 50+ 图表 类型(甘特图,……)| 40+ 实用公式(基于生日计算年龄,……)| 19 插入工具(插入二维码,从路径插入图片,……)| 12 转换工具(小写金额转大写,汇率转换,……)| 7 合并和拆分工具(高级合并行,分割单元格,……)|……更多 |
使用 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 应用高效协作的团队。
- 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
- 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
- 协同效果更佳— 在多个 Office 应用中实现高效协同
- 30 天全功能试用— 无需注册,无需信用卡
- 超值之选— 比单独购买插件更省钱
