昨天第3章内容主要围绕MPS主生产计划展开,着重对主生产计划的一维排程进行动态数组字段化处理。该一维排程仅包含订单对应的生产线体、排程顺序以及每张订单的生产耗时,并未涉及具体的排程时间。
今日第4章则聚焦于主生产计划MPS排程设计,此排程采用函数设计方式实现自动排程功能。
排程周期
排程周期通常以一列水平排列的日期表示。排程的天数决定了日期列的数量。排程设置的起点需要明确两个关键参数:起始日期和总天数。这可以通过SEQUENCE函数来实现。录入动态数组公式:
=SEQUENCE(,30,TODAY)
函数解释:
该公式生成一个包含30个连续日期的水平数组。起始日期由TODAY函数确定,即系统当前日期。排程周期即从起始日期开始的连续30天。
自动排程
一、核心条件
排程范围:明确起始日期与持续天数(例如未来 30 天)。
工作日历:每日可用有效工时(如 10 小时 / 天)。
任务详情:订单执行顺序;对应产品数量;生产线体;
根据产品数量和线体 UPH(单位小时产量) 计算的生产时长(公式:生产时长 = 产品数量 / UPH)。
二、核心排程逻辑(按订单顺序逐一排程)
初始设定:从排程起始日开始,按天累加订单生产时长。
单日排程规则:若当前订单累加时长 ≤ 当日有效工时(如 10 小时),则该订单在当天完成;若当前订单累加时长 > 当日有效工时:当日剩余工时内完成部分任务,超出部分自动顺延至下一日;下一日从 0 工时开始,继续累加剩余任务时长,重复上述判断。
循环执行:直至所有订单排程完成。
参考公式:
=LET(U,E2#,Y,F2#,L,I1#,F,I1,X,A2#,W,F+SCAN(0,X,LAMBDA(X,Y,LET(A,OFFSET(Y,,5),IF(Y=OFFSET(Y,-1,),X+A,A))))/24,K,SCAN(0,X,LAMBDA(x,y,IF(y=OFFSET(y,-1,),x+OFFSET(y,-1,5)/24,F))),Q,XLOOKUP(L,date!A2#,date!D2#),P,HSTACK(F,F+SCAN(0,Q,SUM)/24),H,W,G,K,D,DROP(P,,1),C,DROP(P,,-1),A,G>=C,B,H=D),"",IF((A)*(B),Y/24,IF((A)*(GC)*(B),H-C,Q/24)))*24*U),0),0))
开工完工
当排程表横向展开(如按日期排列 30 天数据)时,需快速查看某订单的预计开工日期与预计完工日期,避免左右滚动查找。可以录入公式:
开工:=BYROW(I2#,LAMBDA(X,MIN(IF(X>0,I1#))))
对当前行的排程量数据(如 I2# 范围),自动筛选出排程量 > 0 的日期,并取其中最小日期(即最早开工日)。
完工:=BYROW(I2#,LAMBDA(X,MAX(IF(X>0,I1#))))
对当前行的排程量数据,自动筛选出排程量 > 0 的日期,并取其中最大日期(即最晚完工日)。
订单所在行的 “开工 / 完工” 日期直接显示在同一行,无需横向滚动;
订单在哪行,对应的“开工/完工”日期就在同一行直接显示
告别反复横拉鼠标找日期的低效操作!
效率提升:告别反复横拉鼠标的低效操作,直接在订单行获取关键日期;
动态更新:若排程量数据变化,公式自动重新计算开工 / 完工日期,无需手动调整。
未完待续……
恒正网配资-股票配资门户是什么-天天配资网炒股配资开户-配资首选门户网站提示:文章来自网络,不代表本站观点。