PMC生产计划自动排程全动态数组设计-1

职场计划有古哥 2025-04-22 09:10:53

全文约900字

大家好,我是古老师。在PMC生产计划中进行订单排程是一个非常基本的一个操作,一般情况下在有产品的标准的工时的情况下,PMC会根据每天出勤的工作时间进行订单排程,为了考虑不同的约束条件,如设备、人力、效率等,通常为手动排程。

但如果是未来快速排程,在减少约束的情况下,可以直接调用最小约束来进行快速排程,如只考虑标准工时和工作日历,此时可以适当引入函数版本的自动排程。

传统的表格自动排程的公式相当复杂,并且是手动填充版本的,无论是对于操作者还是设计者的要求都比较高,最近WPS表格更新了好多新的函数,是时候做一期简单好用的全动态数组自动排程教学了。

工作日历

设计表格自动排程的核心报表之一就是工作日历,工作日历这个工作表是一个标准的一对一关系,就是一个日期就是唯一ID,把这个表设计成类似数据库的主键一样的工作表。

后续只要涉及到日期对应的工作时间都需要引用这个唯一ID,并且需要注意的就是这个主键(日期列)唯一并且非空。而需要实现这样的设计,用动态数组配合日期函数即可实现。

工作日历汇总

为了减少工作日历的手动录入,这里的工作日历日期采用函数一键生产的方法,新建一张工作表,并命名为“日历.输出”,创建第一行的字段名,分别命名为:{"日期","月份","星期","周数","出勤时间"},录入对应公式:

A2=SEQUENCE(3650,,DATE(YEAR(TODAY()),1,1))

B2=MONTH(A2#)

C2=WEEKDAY(A2#,2)

D2=WEEKNUM(A2#,2)

通过以上公式就一次性创建了未来10年的工作日历时间,出勤工时这里这里暂时不录入公式,等后续再创建公式

录入出勤工时

上面已经创建了未来10年的工作日历时间,实际工作中,需要重点关注的就是前一月、当前月、后一月以及后二月的工作日期对应的工作工时。为了方便PMC计划员快速填写,不需要手动筛选对应月份填写。分别创建4个工作表,把命名对应为“前一月.输入、当前月.输入……”这样的工作表名后录入对应的公式:

前一月.输入 =LET(D,日历.输出!A2#,T,TODAY(),FILTER(D,(MONTH(D)=MONTH(T)-1)*(YEAR(D)=YEAR(T))))

当前月.输入

=LET(D,日历.输出!A2#,T,TODAY(),FILTER(D,(MONTH(D)=MONTH(T))*(YEAR(D)=YEAR(T))))

其他类似

只需要把MONTH提取出来的月份进行数字运算即可。效果如下:

汇总查找引用

这里继续返回第1张工作表“日历.输出”,找到字段出勤时间,并在下方录入动态数组公式进行查找引用,这样就可以返回到我的主数据库表中,后续作为公共调用。

=IFNA(VLOOKUP(A2#,VSTACK(前一月.输入:后两月.输入!A2:E300),5,0),0)

未完待续……

0 阅读:0