PMC生产计划自动排程全动态数组设计 - 9
优秀创作者
全文约700字
大家好,我是古老师。今天继续设计PMC生产计划自动排程全动态数组的表格第9章,在第8章中完成了MPS主生产计划自动排程第3个IF判断中的逻辑:“IF((H>C)*(B),H-C,Q/24)”,今天设计最后一个(第4次)IF判断逻辑:
“IF((H<=C)+(G>=D),"",”
这次判断的逻辑方向订单完成了就显示为空
定义对应名称
为了公式不用多次引用,这里对需要多次引用的数据进行名称定义,定义如下:
I2#:开工加累计用时
A:G>=C,对应公式=G4#>=J14#
Y:用时(小时),对应E4#
G:无限-预计开工,对应G4#
H:无限-预计完工,对应H4#
D:第2天累计时间,对应=DROP(I2#,,1)
C:第1天累计时间,对应=DROP(I2#,,-1)
判断1:(H<=C)+(G>=D)
第一个判断条件H<=C,就是无限-预计完工小于等于第1天累计时间,录入后返回一组逻辑值,效果如下图所示:
第二个判断逻辑为G>=D,也就是无限-预计开工大于等于第2天累计时间,同要也返回一组逻辑值,显示如下:
判断2:或者满足
接下来就是对这两个条件进行IF判断,这里不是并(AND),而是或(OR)原则,同样不用函数判断,直接用运算符号加号判断,录入:
=IF((H<=C)+(G>=D),""
这样就得到了订单完成后日期显示为空的判断。
判断3:取整与屏蔽错误
最后就是最外层嵌套两个函数,一个是取整函数ROUND,一个是屏蔽错误函数IFERROR,分别对自动排程中可能出现的小数进行取整以及可能出现的错误进行屏蔽。
最后总结
第1次判断:如果订单在当天完成,则直接用用时乘以UPH,如订单只需要2小时完成,就直接返回2*300,返回600
第2次判断:如果订单超过一天或者等于1天才能完成,则直接用当天的工时乘以UPH,如订单需要10小时完成,则直接10*300,返回3000;
第3次判断:当果当天不能完成,就用剩下的时间乘以UPH,如订单1用了2小时,剩下的订单需要6小时完成,则6*300,返回3000;
第4次判断:当订单完成后,剩下日期都显示为空;并用两个函数进行排程数量取整和错误屏蔽。