Microsoft Excel 2010,输入文件包含数千行每小时数据,因此每天有 24 个值(行)。
假设我的数据从 B1 开始,假设我将第 1 天的平均值放入 C1。C1 单元格的内容将是 =AVERAGE(A1:A24),到目前为止一切顺利。
问题是我需要在 C2 单元格中输入什么才能使 C2 单元格的内容变成 A:25 到 A:48 的平均值,这样我可以将相同的公式复制到 C 列,并且它会适当地在 C3 中填充为 A:49 到 A:72 的平均值等等?
答案1
Excellll 方法的变体.....
尝试将这个公式复制到 C1 中
=AVERAGE(OFFSET(A$1,(ROWS(C$1:C1)-1)*24,0,24))
....或者....上述方法的一个缺点是可能很难理解公式实际上在做什么:这种方法将把明确的 AVERAGE
每个单元格中的公式:
将此公式粘贴到 C1 中并向下复制
="=AVERAGE(A"&(ROWS(C$1:C1)-1)*24+1&":A"&ROWS(C$1:C1)*24&")"
这会将所有公式创建为文本......
现在通过以下方式将它们转换为实际公式
选择列 > 右键单击 > 复制 > 右键单击 > 选择性粘贴 > 值 > 确定 > 文本到列 > 完成
答案2
如果它可以在您的环境中发挥作用,我会考虑使用数据透视表来执行此操作。
假设您的时间采用正确的 Excel 日期时间格式(如果不是,请创建一个新列并创建公式将其转换为日期时间):
- 选择 A1 到 B5000(或者你认为最终能到达的最远距离)
- 创建数据透视表并将其放在 C 列
- 在行标签区域添加 A-Hours
- 按天分组(右键单击日期,选择“组”,然后选择“天”)
- 在值区域添加 B-Data 并将其设置为平均值而不是总和。
这个解决方案是:
- 易于实现
- 容易明白
- 灵活(可以移动、过滤、按月汇总等)
- 防错/无忧:如果您遗漏了一行或以某种方式破坏了偏移量,它仍将根据实际数据正确计算您的每日平均值,而不是依赖于行数假设。您甚至可以在值区域添加额外的计数,以确认您每天确实有 24 个值。