4月17日更新了第2行的公式:
=IF(T$1<$K2,0,IF(VLOOKUP(T$1,工作日历!$A:$C,3,0)=0,0,IF($I3-SUM($S3:S3)>$R3,$R3,$I3-SUM($S3:S3))))
发现这个公式的BUG主要就是这个,就是一张订单如果连续生产时,第二天的负荷要么超了,要了少了,所以要想办法解决这个问题。所以需要换个思路。
求出负荷
什么是负荷,简单理解就是我当天做个型号的最大产能是500,就不能超过500,如果有换线的话,在不考虑切换时间的情况下,第一款产品和第二款产品加起来的用时也不能超过他们的最大产能。所以先把负荷率的公式设计出来。
此表的负荷公式=当天排产的数量除以当日最大产能
录入公式=SUM(S2:S11/$Q$2:$Q$11) 此公式为数组公式需要按:Ctrl+Shift+回车
运算结果可以看出来只要当天排产超过一款的时候,负荷就累加了,也就是超出了
解决思路
就是要想办法解决超出每日最大负荷的问题?思考加个IF判断,如果负荷排程第一款产品的时候小于1的时候需要怎么样?而且负荷不能出现负数。再加IF判断前我们先用手动计算,复制一小部分数据到新的表格测试,用昨天公式手动判断就是超出日负荷了如下图:
现在就是如果第一行的负荷在0到1之间,第二行怎么办?这里不考虑换线时间。
就用1-0.5,表示还剩下0.5的负荷,再乘以第二行的最大产能,如上图:0.5*300=150,我们看一下结果:
这正是古哥想要的结果。马上测试一下
应用验证:
特别提醒:写这样超长的公式,不要想着一次就写好,除非就是大神,古哥这里是分步写的
- 在下面写辅助公式条件1:负荷在0到1之间,大于0可以理解为有排程,等于0表示没有排程。超过1表示超出最大负荷。加上AND判断,表示两个条件都需要同时成立
注意对应的锁定关系:I$2:I2,这里只锁定了排产列第2行前面的单元格,因为等下公式要向下填充变成I$2:I3,同理,产能$G$2:$G2这里锁定了列和行的第2个单元格和后面的锁定了列,没有锁定行,向下填充的公式就变成了$G$2:$G3
=AND(SUM(I$2:I2/$G$2:$G2)>0,SUM(I$2:I2/$G$2:$G2)<1) 此公式为数组公式需要按:Ctrl+Shift+回车
- 辅助公式条件2:就是如果第一行的负荷在0到1之间,再乘以第二行的最大产能
=IF(I14,(1-SUM(I$2:I2/$G$2:$G2))*$G3) 此公式为数组公式需要按:Ctrl+Shift+回车
现在基本上就可以OK了,还记得昨天判断的公式吗?
=IF(I$1<$F2,0,IF($D3-SUM($H3:H3)>$G3,$G3,$D3-SUM($H3:H3)))
再把这个公式套入,一层一层套入,就可以发现修复了这个BUG
=IF(AND(SUM(I$2:I2/$G$2:$G2)>0,SUM(I$2:I2/$G$2:$G2)<1),(1-SUM(I$2:I2/$G$2:$G2))*$G3,IF(I$1<$F2,0,IF($D3-SUM($H3:H3)>$G3,$G3,$D3-SUM($H3:H3))))
此公式为数组公式需要按:Ctrl+Shift+回车
最终效果如下:
好了,基本上就到这了,不过古哥测试过程中还发现一个BUG,就是订单量小于日产能时候出现了。
此时就再加一个判断条件就行了,就是当订单数和日产能做对比
=(1-SUM(I$2:I2/$G$2:$G2))*$G3<$D3
再把公式一层一层套入:
=IF(AND(SUM(I$2:I2/$G$2:$G2)>0,SUM(I$2:I2/$G$2:$G2)<1,(1-SUM(I$2:I2/$G$2:$G2))*$G3<$D3),(1-SUM(I$2:I2/$G$2:$G2))*$G3,IF(I$1<$F2,0,IF($D3-SUM($H3:H3)>$G3,$G3,$D3-SUM($H3:H3))))
这个BUG也解决了。
至此排程辅助就基本完成了,解决了古哥在一维排程到二维排程的自动转换,公式和函数加上数组,非常好用,大家多多学习。
我是古哥:
从事制造行业18年,在企业运营、供应链管理、智能制造系统等方面具有丰富的实战经验。企业智能化,柔性化计划运营管理专家,擅长通过企业流程优化规范,企业管理、导入计划运营提升企业效率;对提高企业准时交货率,降低企业库存,输出智能智造人才有丰富的经验。关注我,每日分享制造行业,特别是生产计划方面的一些职场干货。
如若转载,请注明出处:https://www.dianshango.com/41220.html