如何对一系列日期和值计算滚动平均值?

如何对一系列日期和值计算滚动平均值?

如何对一系列日期和值计算滚动平均值?

数据基本上如下所示:

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天的平均值;C2201.72,等等。


解释:

OFFSET()B1输出从 开始到高度为 的范围5(向下,包括B1其本身)。
(替换5为您想要的天数。)

然后,AVERAGE()用于计算范围的平均值。

答案3

=AVERAGE($B$1:INDEX($B$1:$B$100,COUNTA($B$1:$B$100)))

这将在您添加数据时更新。但请注意,它只查看前 100 行,因此如果有更多行,请进行调整。此外,如果您在顶部插入行,引用将向下移动。

答案4

经过审查我自己的答案多年后,我想提出一个更简单的公式。

  1. 输入 C1 =average(B1:B5)(假设 5 天滚动平均值)
  2. 复制并粘贴至 C 列下方

注意:对于最早的记录(2010 年 8 月 24 日),滚动平均值(C 列)将显示当天的值。对于第二条记录(2010 年 8 月 25 日),将显示前 2 天的平均值,依此类推。

相关内容