☰
Excel供应链分析实战:从移动加权平均到采购预测
2026/10/10 7:23:22 网站建设 项目流程

月初做采购计划的时候,我见过太多人对着 Excel 里的历史发货记录发愁:需求明明有波动,供应商却要求提前一个月确认订单;库存看起来够,财务却催着压降资金占用。这类问题放着不管,月底很容易变成两个结果——要么缺料停线,要么库存积压。其实在Excel里做预测分析和供应链分析,并不需要一开始就掌握多复杂的模型,一条移动加权平均的思路,就能把散乱的采购数据变成可决策的信息。真正的难点不是公式难背,而是很多人没有把业务问题先转化成一个能放进表格里的计算模型。

1. 先想清楚:Excel在供应链分析里到底在解决什么问题

1.1 不是Excel不够强,而是业务数据长期停留在“表格阶段”

很多人以为“供应链数据分析”一定得上BI系统或者写Python。但在实际工作中,绝大多数中小型企业的采购、库存、物流数据,仍然每天以Excel传输。供应商发来报价单,仓库导出出入库记录,财务给一份结算表,最后统一汇聚到一张工作簿里。可以说,Excel承担的不是“最后展示”,而是“数据交换中间层”。这个中间层虽然原始,却离业务足够近,改起来也足够快。

所以,Excel在供应链分析里的价值,不是做复杂的机器学习预测,而是让一个人可以在一个下午之内,把“下个月该采购多少”这种模糊问题,变成一张能解释、能检查、能复算的表格。这个过程里,Excel解决的是“业务模型的可复现性”,而不是“算法的先进性”。

如果一上来就追求用Python做需求预测,反而容易陷入两个问题:一是数据质量还没到能跑模型的程度,二是历史需求可能连两年都没有,时间序列模型根本不够喂。相比之下,从Excel里的移动平均、透视表和条件汇总开始,反而更能把业务逻辑理顺。

1.2 把采购记录整理成可分析数据的固定结构

无论后期用什么函数、做什么图表,Excel供应链分析的第一步都是先把数据整理成“一行一条事实”的结构。什么叫一行一条事实?就是每一行只记录一次业务事件,例如:

  • 日期
  • SKU或物料编码
  • 业务类型(采购入库 / 出库消耗 / 退货 / 调拨)
  • 数量
  • 单价(含税或不含税按统一口径)
  • 金额
  • 供应商或仓库
  • 订单号(可选)

这个结构看起来简单,却能让后续的SUMIFS、数据透视表和移动平均公式稳定运行。很多人分析出错,不是公式写错,而是源表里塞了合并单元格、小标题、合计行、多级表头,导致公式取数范围飘忽不定。

如果你现在手里的表格还不是这种结构,我建议先复制一张原始备份,再新建一个Sheet命名为“清洗数据”,用Power Query或手工粘贴转置,把数据规整成标准的一维表。不要直接在原始表上改,因为原始表还要保留核对依据。这里更接近一个通用处理思路,具体字段可以根据公司业务调整,但核心原则是:每列一个维度,每行一个事实,单元格里不要塞两个含义。

2. 移动加权平均:一种比普通平均更贴近业务的计算方式

2.1 普通平均的问题:它漏掉了批次和库存视角

在采购成本分析和库存金额计算里,最常见的一个误区是直接对历史采购单价求平均值。比如某物料上个月采购两次,一次单价100元,一次单价120元,普通平均就是110元。但如果两次采购数量分别是10个和100个,均价显然应该更靠近120元,因为大部分库存是按120元买的。普通平均把所有批次一视同仁,会扭曲当前的库存成本和后续的销售成本结转。

移动加权平均的思路是:每次发生采购入库时,都用“当前库存总金额加上本次入库金额”,除以“当前库存总数量加上本次入库数量”,重新计算一个均价。出库时不改变这个均价,只同时减少库存数量和库存金额。这样,每一个时间点的库存单价,都反映的是截至当时为止所有采购批次综合后的真实成本。

放在采购预测语境里,移动平均法还有另一层含义:用最近N期的实际需求量,取平均值作为下一期的预测值。它不关心长期趋势,也不关心季节波动,只跟随最近一段时间的水平。所以它特别适合需求相对稳定、没有剧烈趋势变化的物料,比如常用的包装材料、标准件、低值易耗品。

2.2 在Excel里实现移动加权平均,我一般分两步走

第一步,建立“期初库存 + 出入库流水”的辅助列。假设数据表中有四列:A列日期、B列SKU、C列业务类型、D列数量、E列单价、F列金额。在G列放“库存数量”,H列放“库存金额”,I列放“移动加权单价”。

最简单的实现方式,是用SUMIFS累计同一SKU截至当前行的采购数量和采购金额,再减去出库数量和出库金额。公式可以这样写(从第2行开始):

G2 = SUMIFS($D$2:D2, $B$2:B2, B2, $C$2:C2, "采购") - SUMIFS($D$2:D2, $B$2:B2, B2, $C$2:C2, "出库")
H2 = SUMIFS($F$2:F2, $B$2:B2, B2, $C$2:C2, "采购") - SUMIFS($F$2:F2, $B$2:B2, B2, $C$2:C2, "出库")
I2 = G2 / 实际库存数量

这里需要特别注意,如果出库记录里的金额不是按照实时移动加权单价写入的,直接用“采购金额累计减出库金额累计”算出来的单价会失真。更稳妥的方式是在出库行也引用当时的移动加权单价。也就是说,每次出库行的F列金额,应当是“本次出库数量 × 当时库存均价”。这需要从第一条流水开始逐行计算,通常用辅助列配合下拉公式就能实现。

更简单、也够用的替代方案是:如果没有出库明细,只有采购入库明细,可以直接用累计采购金额除以累计采购数量,得到截至某批入库时的成本均价。很多采购分析场景只需要算到这一步,因为你要回答的是“这批采购回来之后,库存成本大概是多少”。

第二步,如果要做滚动需求预测,则用AVERAGE配合OFFSET实现最近N期平均。假设历史需求按行排列在K列,窗口期放在一个单独的单元格,比如M1=3,那么:

L10 = AVERAGE(OFFSET($K$10, -$M$1 + 1, 0, $M$1, 1))

这个公式的意思是:从当前行往上取N期,计算平均值。OFFSET用得好,可以把窗口期做成可调参数,以后想改成6期还是12期,只需要改一个单元格。

2.3 移动平均预测:给采购计划加一个滚动视图

移动平均法最容易被误解的地方在于:它不是一种“精准预测”,而是一种“平滑参照”。如果业务需求有明显的上升趋势或旺季周期性,移动平均的结果会滞后。比如旺季已经来了,三个月平均法可能还停留在前两个月的低水平上,导致建议采购量偏少。

所以,在Excel里做移动平均时,至少要把两个数字放一起看:历史实际值和移动平均预测值。不要在预测那一列凭空生成一个采购建议,而是先看预测和历史曲线的贴合程度。如果曲线整体落后,就要么缩短窗口期,要么在预测值上增加一个经验调整系数。这里的调整系数不需要复杂模型,可以先用“最近一期实际值 / 前N期平均值”作为一个粗略修正,哪怕只做一个月,也比重拍脑袋强。

3. 把预测和成本分析串成一条完整的采购分析流程

3.1 从历史需求到采购建议的三步法

分析Excel采购数据,不需要一上来就写十几个嵌套函数。我更建议按下面这三步推进:

第一步,做需求基线。把历史出库或发货数据按“月份 + SKU”用数据透视表汇总,得到每个月每个物料的需求量。然后在透视表后面加一列移动平均预测值,周期可以先用3个月或6个月,根据物料波动情况调整。这个步骤回答的是“正常情况下下个月需要多少”。

第二步,算安全库存和当前可用库存。安全库存可以按“平均日需求量 × 补货周期 × 安全系数”粗估。补货周期包括供应商交期加上内部处理时间;安全系数取1.5或2都可以,先把逻辑跑通再优化。当前可用库存要看仓库现有库存和在途订单,可以用SUMIFS从库存台账里取数。

第三步,生成采购建议量。公式可以写成:

采购建议量 = 预测需求量 + 安全库存 - 当前可用库存

然后在旁边加一个最低起订量(MOQ)约束:

建议采购量 = IF(计算数量 < MOQ, MOQ, CEILING(计算数量, 包装倍数))

这一步才是把预测落到行动的关键。很多Excel预测教程只讲到“算出预测值”就停了,但供应链决策要的从来不是预测值本身,而是“我到底应该下多少订单”。

3.2 采购成本分析不能只看供应商单价

采购成本分析是供应链分析里最容易写浅的一个模块。很多人只拿不同供应商的单价做对比,然后选最便宜的那家。但在实际业务里,低价供应商往往意味着更长的交期、更高的最低起订量或者更不稳定的质量,这些都会变成隐性的库存成本和缺货风险。

在Excel里可以做一张二维对比表,把供应商放在表头,把成本因素放在行:

  • 含税单价
  • 运输费用分摊
  • 付款周期折算资金成本
  • 平均到货周期
  • 最低起订量带来的库存压力
  • 年度质量退货率

然后用一个加权评分法把各类因素统一成可比总分。权重的设置不需要太完美,先按业务经验的优先级赋予数值,跑完结果再和实际订单情况对比,反复调两三次就能形成一套内部参考标准。关键在于,这套对比表的结构要保留下来,下个月直接替换数据就能复用。

另外,已经发生的历史采购成本,可以用移动加权平均后的单价去做月度价格趋势分析。把每个月每种物料最后一天的库存移动加权单价提取出来,做成折线图,就能直观看到采购成本是否在缓慢抬升,为后续谈价或寻找替代供应商提供依据。

3.3 用透视表和折线图让结果自己说话

完成计算后,一定要把结果可视化,否则一堆数字表格很难发现异常。最常用的两个工具是数据透视表和折线图。

数据透视表适合快速汇总:拖入月份到行区域,拖入SKU到列区域,拖入需求量到值区域,几步就能看到不同物料的需求规模。需要提醒的是,透视表生成后,默认的字段名称可能不好看,可以改成“需求量”“金额”等明确名称。如果数据源里存在文本型数字,透视表的求和会变成计数,这是最常见的可视化翻车点。

折线图更适合观察预测和历史趋势的关系。可以把历史需求列、移动平均预测列选中,插入折线图,图表中会直观显示出预测是否滞后。如果想把安全库存、采购建议量也放进去,可以用组合图,把采购建议量改成柱形图,把历史需求改成折线图。图表不需要花哨,关键是阅读者能一眼看出“预测是否合理、建议量是否有依据”。

4. 同样的公式,为什么你的结果总是对不上

4.1 第一层:原始表格里那些看不见的“坏数据”

Excel分析出错,大多数情况下不是公式问题,而是源数据里藏着“坏数据”。最常见的坏数据包括:

  • 日期写成文本,比如“2025-1-5”其实是一个字符串,SUMIFS按日期区间汇总时会漏掉它。
  • 编码里有肉眼看不到的空格,比如物料编码“A001 ”和“A001”看起来一样,但SUMIFS会把它们当成两个不同的值。
  • 空值和零值混在一起。有些单元格是真空,有些是0,如果参与除法,就可能出现除零错误。
  • 合并单元格。透视表和公式碰上合并单元格后,只有左上角有值,其余区域是空值。

处理这类问题的顺序是:先复制一份数据到“清洗区”,再用TRIM去掉空格,CLEAN去掉不可见字符,TEXT把文本日期转成真正的日期,最后用ISNUMBER和ISBLANK检查关键列。不要试图在原表上修改,因为一旦改错,原始依据就找不回来了。

4.2 第二层:公式区域、引用方式和表格结构

公式写对但结果不对,另一个高发原因是引用范围没有正确扩展。很多人下拉公式时,SUMIFS里的条件区域起始行没有用$锁定,导致第一行算的是第2到第10行,第二行却变成了第3到第11行,累计逻辑完全错位。

要解决这类问题,最省心的方法是选中数据区域后按Ctrl+T转成Excel表格。Excel表格的好处是公式会自动扩展到整列,区域范围跟着新数据自动变化,不需要手工拖动。如果公司Excel版本较老,使用表格功能前先确认兼容性,然后把公式写进第一行,Excel会自动填充。

还有一个容易踩坑的点是隐藏行和筛选状态。如果表格里做过筛选或隐藏了部分行,直接使用公式计算结果可能会正常,但定位“哪一行有问题”时就会被隐藏行误导。所以在排查时,一定要先取消筛选、取消隐藏,再检查数据。很多人以为数据表没问题,其实只是漏看了被筛选掉的行。

4.3 一条从源表到图表的排查链路

如果分析结果还是不对,不要从头到尾瞎找,按下面这条链路排查:

  1. 看现象:是报错、结果为0、结果偏大还是偏小?先确认异常出现在哪一行哪一列。
  2. 看输入:检查源表对应行的日期格式、SKU编码、数量、单价。重点看有没有空格、文本数字、隐藏空值。
  3. 看环境:确认当前Excel版本,是否启用了动态数组,是否开启了自动重算。如果用的是WPS,某些函数兼容性也需要单独验证。
  4. 看参数:逐步检查公式里的条件区域、窗口期、起始行有没有锁错。用小范围数据重算一遍,把公式拆开看中间步骤。
  5. 看工具边界:如果数据量超过十万行或公式嵌套超过7层,先考虑是否超出了Excel友好处理的范围,必要时改用Power Query或数据库。

这条链路看起来基础,却是解决供应链Excel分析问题最稳定的方法。很多人一上来就怀疑自己“函数学得少”,其实问题百分之八十出在前面两层。

5. 从“跑通一个表”到“建立一套方法”:边界与升级路径

5.1 先别急着换工具,把业务模型在Excel里跑通

当你在Excel里把移动加权平均、采购建议、成本对比表做出来之后,别急着把它丢给同事或迁移到新系统。先反复核对几个月的历史数据,确认不同物料的预测偏差、公式稳定性、手动调整空间。只有把业务模型在Excel里跑明白了,你才知道这个分析流程里的哪些环节是必需的,哪些是为了应付某次临时问题。

我见过不少团队跳过这一步,直接找开发做一个大屏看板,结果需求定义不清楚,开发出来的报表只是把Excel表格搬到了网页上,业务人员还是要导出再处理。Excel最大的优势,恰恰是可以快速修改模型结构,今天觉得窗口期不对,改一个单元格就重新算一遍;明天觉得评分权重不对,改一列数字就能看到对比结果变化。

5.2 Excel分析适合什么、不适合什么

Excel供应链分析有非常明确的适用边界。它适合处理数据量在几万行以内、分析频率以月或周为单位的场景,适合单人维护、需求变化快的模型原型,也适合用来向管理层解释“这个采购建议是怎么算出来的”。但如果你的目标是实时联动ERP、每天自动拉取多表数据、支持多人同时编辑、或者跑复杂的仓储网络优化,那Excel就不再是合适的生产工具。

移动加权平均法同样有边界。它适合需求波动不大、没有明显趋势和季节性的物料;如果产品处在快速增长期或促销波动期,移动平均会严重滞后,这时候至少要做趋势修正,或者直接换用指数平滑法。同理,采购成本分析里的评分权重不能一成不变,要根据供应商表现定期校准,否则评分表会变成一个形式化工具。

5.3 后续可以朝哪些方向延伸

当Excel里的模型稳定之后,再往上走会更顺手。你可以学Power Query做数据清洗,把“复制粘贴Excel”这一步自动化;学Power Pivot处理百万行级别的数据;如果还想做更复杂的需求预测,可以转向Python的pandas和statsmodels,但你会发现自己已经知道业务流程是什么,只是换了一种计算语法。

从另一个角度看,供应链数据分析的长期价值不在于工具,而在于你建立了一套“从业务问题到数据表,从数据表到计算逻辑,从计算逻辑到业务行动”的方法。Excel是这个方法最轻的载体,移动加权平均也只是其中一个起点。把一条采购预测流程跑通、跑稳,比追求一门高级技术更值得投入精力。

如果你现在手头也有一份混乱的采购明细表,不妨先复制一份数据,整理成一维表,然后用移动加权平均公式算出最近三个月的滚动成本,再看一眼透视表里每种物料的需求波动。这个过程做完,你已经比大部分只会在表格里翻数据的人,往前多走了一步。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询