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

古哥计划
古哥计划

优秀创作者

在昨天的文章中,我们正式进入第三级净需求的运算环节,已完成对“替代料2”需求的提取与累计需求的计算。这一步为后续的库存占用分析奠定了数据基础。接下来,我们将基于该累计需求,结合更新后的库存状态,进行关键的库存可用性判断,以确定替代料2是否足以弥补主料的短缺。若仍存在欠料,且系统中登记了“替代料3”或更高级别的替代选项,我们将继续向下推进,执行第三级乃至更高层级的净需求分析。

库存更新

在推进至更高层级(如第三级)净需求判断之前,必须首先完成库存状态的逐级更新与传递。每一级的运算结果都将影响后续层级的可用资源,因此必须确保库存引用反映的是前序层级已执行扣减后的最新状态。为此,我们需在“库存输出”或相关管理表中新增一列,用于记录第二级净需求运算后的库存余额,作为第三级判断的输入基准。。

=LET(A,XLOOKUP(A2#,第2级净需求!F2#,第2级净需求!K2#,,,-1),IF(D2#=0,0,IFNA(IF(A<0,0,A),D2#)))

公式解释:

A2# 当前库存表中的物料编码(唯一标识)

第2级净需求!F2# 第二级净需求表中的“子件编码”列(用于匹配)

第2级净需求!K2# “累计净需求”结果列(负数表示已耗尽或超支)

XLOOKUP(..., -1) 从后向前查找,获取该物料在第二级运算中的最终净需求值(即最后一行的值)

IF(A < 0, 0, A) 若最终净需求为负,表示该物料已完全耗尽,返回0;否则返回剩余库存

IFNA(..., D2#) 若未找到匹配项(即该物料未参与第二级运算),则保留原始库存D2#

IF(D2# = 0, 0, ...) 若原始库存已为0,则直接返回0,避免无效更新

引用库存

进入“第3级净需求” 工作表后,下一步是将前序层级(主料、替代料1、替代料2)运算完成后所形成的最新库存状态引入当前层级,作为第三级净需求判断的初始可用库存。特别需要注意的是:

此处引用的不再是原始库存,也不是第一级或第二级的中间结果,而是“扣减完替代料2需求后的最终库存更新结果” —— 通常存储在“库存输出”表的 E列(例如字段名为“第2级净需求库存”或“替代料2后库存”)。录入动态数组公式:

=XLOOKUP(F2#,库存输出!A2#,库存输出!E2#)

公式说明:

F2#:当前表中“替代子件3”或待判断物料的编码列

库存输出!A2#:库存表中的物料编码(查找键)

库存输出!E2#:经过前两级替代运算后更新的库存余额

判断替代

在成功引用第二级运算后的最新库存,并完成“替代料2”的需求汇总后,我们已具备进行第三级净需求判断的基础条件。此时,系统将基于库存与需求的对比,识别是否存在进一步的短缺,并据此决定是否需要启动更深层次的替代策略。

第2次累计净需求=J2#-I2#:库存减去累计

第2次净需求=LET(Y,H2#,L,I2#,K,J2#,J,K-L,A,IF(J>=0,0,J),IF(ABS(A)<Y,A,-Y))

替代料3判断=VLOOKUP(B2#&"-"&E2#,PIVOTBY(BOM输出!F2#,BOM输出!E2#,BOM输出!C2#,T),5,0)

若某子件在BOM中定义了替代料3,则返回其编码,否则返回#N/A,表示无更高级替代。该功能支持多级替代策略,可自动触发下一级计算,提升计划灵活性,充分挖掘可用资源,减少停线风险。当所有替代路径耗尽后,可作为判断最终缺料、启动采购或调整计划的依据。

未完待续……

广东省
浏览 236
收藏
4
分享
4 +1
1
+1
全部评论 1
 
亂雲飛渡
亂雲飛渡

WPS寻令官

点赞
· 广东省
回复