admin
2026-01-05 18:40:17
在下面的数据集中,我们记录了一家公司 2021 年 12 个月的需求。使用这些值,我们将计算移动平均值并预测 2022 年 1 月 的需求。我们将演示 3 点移动平均线,因此我们需要 3 个值进行计算。
方法 1 – 使用算术运算符我们可以使用算术运算符“+”来计算移动平均值并预测2022年1月的需求。
步骤:
选择数据集第三行中的一个单元格。
由于我们使用 3 点移动平均值并且该平均值至少需要 3 个值,因此如果我们在前两行中使用单元格,那么我们将没有足够的值。
在单元格 F6 中输入以下公式:=(E6+E5+E4)/3E6、E5 和 E4 是前 3 个值。我们通过将它们相加然后将结果除以3来计算平均值。
按ENTER并向下拖动填充手柄工具。
计算移动平均线。
方法 2 – 使用 SUM 函数我们也可以使用 SUM 函数来执行与之前方法相同的任务。
步骤:
在单元格 F6 中输入以下公式:=SUM(E4:E6)/3SUM 将单元格E6、E5和E4的值相加,然后除以 3。
按ENTER并向下拖动填充手柄工具。
计算移动平均值,最后一个单元格中的移动平均值预测 2022 年 1 月 的需求。
方法 3 – 使用 AVERAGE 函数我们还可以使用AVERAGE函数来确定需求的3点平均值。
步骤:
在单元格 F6 中输入以下公式:=AVERAGE(E4:E6)
按ENTER并向下拖动填充手柄工具。
返回所有剩余单元格的平均值,我们可以预测 2022 年 1 月 的需求。
方法 4 – 加权移动平均线公式加权移动平均包括一些加权因子,这些因子将根据其重要性乘以值。由于最新的需求值比最旧的需求值更重要,因此我们将最新的值乘以因子 0.6,第二个最新的值乘以 0.4,最旧的值乘以 0.4。值0.2。
步骤:
在移动平均列的第三行中输入以下公式:=E6*$G$2+E5*$E$2+E4*$C$2这里,E6是2021年3月的最新需求值,$G$2是相乘的权重因子0.6值为E6,E5是2021年2月的第二个最新需求,$E$2是重量因子 0.4 乘以 E5 中的值,E4 是2021 年 1 月 中最早的需求,并且 >$C$2 是与E4中的值相乘的权重因子0.2。
按ENTER并向下拖动填充手柄工具。
返回其余单元格的平均值,最后一个单元格的平均值将确定 2022 年 1 月 的需求值。
方法 5 – 指数移动平均线公式指数移动平均线是加权移动平均线的另一个版本,它会给予最新数据更多的权重,并且平均值会从最新到最旧的数据呈指数递减数据。
步骤:
按照方法 3并使用以下公式计算简单移动平均线值:=AVERAGE(E4:E6)
我们需要计算指数移动平均线之前的时间段的实际需求值和简单移动平均线值。
在单元格 G7 中输入以下公式:=0.2*E6+(1-0.2)*F6由于我们使用此公式来计算 4 月 2021 的指数移动平均线,因此我们使用 E6,或者2021 年 3 月 和 F6 的实际需求值,或 F6 的简单移动平均线值>3 月 2021, 在公式中。 0.2 是平滑因子,范围为0.1 – 0.3。
按ENTER并向下拖动填充手柄工具。
返回其余单元格的平均值,并使用最后一个单元格中的值,我们预测 2022 年 1 月的需求值。
方法 6 – 过去 3 个月平均值的公式在这种方法中,每次我们输入最近3个月的需求值时,都会自动计算这些值的平均值。为此,我们使用 AVERAGE、OFFSET、 和 COUNT 函数。
步骤:
在单元格 F5 中输入以下公式:
=AVERAGE(OFFSET(E4,COUNT(E4:E2000)-3,0,3,1))E4 是开始向下移动的单元格,E2000 是范围的限制。根据您的用例的需要更改此数字。 COUNT(E4:E2000)-3 是向下移动的行数,0 是向右移动的列数,第三个参数 3 是行数,第四个参数1 是从中提取值的列数。
COUNT(E4:E2000) → 计算值在此范围内的单元格数量。输出 → 9COUNT(E4:E2000)-3 → 变成 9-3 输出 → 6OFFSET(E4,COUNT(E4:E2000)-3,0,3,1) → 变为 OFFSET(E4,6,0,3,1) → 将从E4向下移动6行,并从该单元格向上提取值到3 行和1 列。 输出 → $E$10:$E$12AVERAGE(OFFSET(E4,COUNT(E4:E2000)-3,0,3,1)) → 变为 平均($E$10:$E$12) 输出 → 418
要检查该值的正确性,请在单元格 F8 中输入以下公式:=AVERAGE(E10:E12)七月到九月的平均需求在这两种情况下是相等的。
使用十月、十一月和十二月的需求值更新数据集。单元格F5中的平均值更改为446.67。
要检查此值,请手动更改单元格 F8 中以下公式的引用:=AVERAGE(E13:E15)
在这种情况下,两个平均值也是相同的。
方法 7 – 使用 OFFSET 和 AVERAGE 对不完整数据进行简单移动平均在之前的案例中,由于前两行数据不足,我们从第三行开始计算移动平均值。 为了解决这个问题,我们将使用带有 AVERAGE、OFFSET、MIN 和 ROW 函数的公式。
步骤:
在单元格 F4 中输入以下公式:
=AVERAGE(OFFSET(E4,0,0,-(MIN(ROW()-ROW($E$4)+1,3)),1))ROW() → 给出当前行号。输出 → 4ROW($E$4) → 返回该单元格的行号。 输出 → 4ROW()-ROW($E$4)+1 → 变成 4-4+1 输出→1MIN(ROW()-ROW($E$4)+1,3) → 变成 MIN(1,3) 输出→1OFFSET(E4,0,0,-(MIN(ROW()-ROW($E$4)+1,3)),1) → 变为 偏移量(E4,0,0,-1,1) 输出 → $E$4AVERAGE(OFFSET(E4,0,0,-(MIN(ROW()-ROW($E$4)+1,3)),1)) → 变为 平均($E$4) 输出→100
按ENTER并向下拖动填充手柄工具。
返回所有单元格的简单移动平均值值。
方法 8 – 使用 VBA 代码实现简单移动平均线我们将使用与之前相同的数据集。
步骤:
转到开发人员选项卡>> Visual Basic 选项。
Visual Basic 编辑器将打开。
转到插入选项卡>>模块选项。
将创建一个模块。
在模块窗口中输入以下代码:Sub movingaverage()
Dim rng As Range
Dim i As Integer
Set rng = Range("E4:E6")
For i = 6 To 15
Cells(i, "F").Value = WorksheetFunction.Average(rng)
Set rng = rng.Offset(1, 0)
Next i
End Sub我们将范围“E4:E6”设置为rng。 FOR Next 循环会从第 6 行到 15 行计算移动平均值,输出值将显示在 F 列中在相应的行中。然后,在每次循环迭代中,将使用 rng 再次设置每个单元格下一行的新范围。
按F5运行代码。返回以下移动平均线:
比较实际需求值和移动平均线我们通过表示值来比较实际需求、简单移动平均线、加权移动平均线和指数移动平均线从前面的方法获得,并通过图形进行图示表示。
如果我们绘制值并通过折线图进行可视化:
加权移动平均线 (WMA) 非常接近实际需求,简单移动平均线 (SMA) 和指数移动平均值 (EMA) 彼此接近。
Excel 中的移动平均线:知识中心在 Excel 中计算 7 天移动平均线在 Excel 图表中生成移动平均线