如何对一系列日期和值计算滚动平均值?
数据基本上如下所示:
9/15/2010 199.8
9/14/2010 202
9/13/2010 200.8
9/12/2010 202.8
9/11/2010 201.4
9/10/2010 201.6
9/9/2010 201.8
9/8/2010 202.2
9/7/2010 202.2
9/6/2010 202.6
9/5/2010 205.8
9/4/2010 204.2
9/3/2010 205
9/2/2010 206.6
9/1/2010 208
8/31/2010 209.8
8/30/2010 210.2
8/29/2010 209.6
8/28/2010 209.6
8/27/2010 209.4
8/26/2010 209.8
8/25/2010 209.2
8/24/2010 210.8
答案1
假设您的第一条数据在 B1 中,您可以复制并粘贴以下公式,将其放在数据列的下方。将其放在 C2 中:
=AVERAGE($B$1:B2)
美元符号“锚定”了第一个单元格,使其成为在复制/粘贴公式时不会移动的绝对引用,而第二个单元格是一个相对引用,它会随着每次输入而继续更新平均值。
答案2
通过“滚动平均值”,我相信您谈论的是过去 n 天(比如 5 天)的平均值。
(根据您提供的数据,假设它们是 A 列和 B 列)
输入=AVERAGE(OFFSET(B1,0,0,5))
,C1
然后复制并向下粘贴(如有必要)。
C1
应该输出201.36
最近5天的平均值;C2
是201.72
,等等。
解释:
OFFSET()
B1
输出从 开始到高度为 的范围5
(向下,包括B1
其本身)。
(替换5
为您想要的天数。)
然后,AVERAGE()
用于计算范围的平均值。
答案3
=AVERAGE($B$1:INDEX($B$1:$B$100,COUNTA($B$1:$B$100)))
这将在您添加数据时更新。但请注意,它只查看前 100 行,因此如果有更多行,请进行调整。此外,如果您在顶部插入行,引用将向下移动。
答案4
经过审查我自己的答案多年后,我想提出一个更简单的公式。
- 输入 C1
=average(B1:B5)
(假设 5 天滚动平均值) - 复制并粘贴至 C 列下方
注意:对于最早的记录(2010 年 8 月 24 日),滚动平均值(C 列)将显示当天的值。对于第二条记录(2010 年 8 月 25 日),将显示前 2 天的平均值,依此类推。