在在昨天的文章中,我们已完成净需求计算前的关键准备工作:

对毛需求数据按子件编码进行排序,确保相同物料连续排列;

通过XLOOKUP引用“库存输出”中的可用库存,实现需求与库存的关联;

并利用SCAN函数完成子件需求的累计求和,避免重复扣减问题。

这些前置步骤为净需求的精准计算打下了坚实的数据基础。

今天,我们将正式进入净需求的实际运算阶段——基于“总毛需求”与“可用库存”的对比,计算每个子件的净需求量,并进一步判断是否存在欠料情况。这不仅是MRP逻辑的核心环节,更是后续采购计划、补料建议和齐套分析的决策依据。

净需求计算

在完成子件排序、库存引用和累计需求汇总之后,我们已具备计算第1级净需求的全部数据条件。净需求的核心逻辑非常直观:

净需求=可用库存-子件累计总需求

该计算反映的是:在当前库存水平下,某一物料是否足够支持所有相关生产任务的消耗。其结果具有明确的业务含义:

正数:库存富余,满足需求后仍有结余;

0:库存刚好满足,无多余也不短缺;

负数:库存不足,存在欠料,需采购或调拨。

动态数组公式

在“第1级净需求”工作表中新增一列,命名为“净需求”,在对应单元格输入以下公式:

=J2#-I2#

告别手工算料:动态数组打造智能BOM替代分析-8

公式说明:

J2#:引用的“库存”数量(来自“库存输出”表)

I2#:通过SCAN计算出的“累计需求”值

结果为每个子件对应的净库存余额,由于“累计需求”是逐行累加的,因此“净需求”的结果也呈现出动态累计过程。子件需求对应3行,100、200、300;虽然库存只有50,但总需求不断累加,导致净需求持续下降。最后一行的负值(-550)即为该物料的最终短缺量

单个净需求

在上一节中,我们通过库存-累计需求计算出了累计性净需求。虽然该结果能反映整体短缺趋势,但其值是逐行累加的(如-50、-250、-550),无法体现每一行原始需求所对应的独立欠料情况。

例如,当某子件有多个生产任务共用时,我们更希望知道:

“每一个生产任务单独来看,是否缺料?缺多少?”

为此,我们需要重新计算一个独立的、非累计的净需求;

在合适位置录入公式:

=LET(Y,H2#,L,I2#,K,J2#,J,K-L,A,IF(J>=0,0,J),IF(ABS(A)<Y,A,-Y))

告别手工算料:动态数组打造智能BOM替代分析-8

公式解释:

H2#:当前行的“子件需求”(即该任务所需数量)

I2# :“累计需求”——从第一个相同子件开始到当前行的总需求

J2# :“库存”——从“库存输出”表引用的可用总量

K-L :当前累计净库存余额(可能为负)

A :实际累计欠料(取负值,富余时为0)

先判断到当前行为止,总需求是否已超过库存;

如果已超(J < 0),则产生累计欠料 A;

再判断:当前任务的需求量 Y 是否大于总欠料的绝对值?

是 → 表示该任务部分参与了短缺,欠料为 A(如总欠50,当前需求100,则欠50)

否 → 表示该任务全部未满足,欠料为 -Y(如需求30,但总欠50,则这30全缺)

最终结果呈现出每条任务的真实缺料量,而非累计过程。

应用价值

精准定位缺料任务:明确哪个生产任务缺了多少料;

支持任务级齐套分析:可用于判断“某订单是否可执行”;

为替代料匹配提供输入:后续可基于此字段触发替代逻辑;

便于生成可视化报表:可直接用于图表展示各任务缺料情况。

未完待续……

相关新闻

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

立即咨询 企业版试用 上门服务

请您留言

感谢您的关注,你可留下联系方式,我们将第一时间与您联系。