533从手动到全自动:基于动态数组的全自动生产计划排程设计-3

职场计划有古哥 2024-10-05 03:14:47

全文约1749字;

阅读时间:约7分钟;

听完时间:约12分钟;

接下来,我们继续讨论逻辑判断。动态数组全自动排程的核心在于逻辑判断:如果开工时间大于或等于第二天的累计工时,则返回 TRUE;反之则返回 FALSE。当结果为 TRUE 时,意味着无需进一步排程,此时可直接返回空值。而若结果为 FALSE,则需要进行更深层次的判断。这只是整个流程中的初次判断,在后续过程中,还需结合 OR、AND 以及 IF 等逻辑运算符来进行大约八次额外的判断。

第二个判断

接下来是第二个判断,其目的是确定每个工单首次排程后的结果。我们将使用以下公式来进行判断:

=O5#<=DROP(P3#,,-1)

公式解释:

O5#:表示每张生产任务的完工时间,例如9月30日或10月2日等。

DROP(P3#,,-1):代表开工时间加上每天的累计工时。

判断逻辑如下:

如果完工时间小于或等于(即不大于)开工时间加上每天的累计工时,则返回 TRUE;否则返回 FALSE。

此判断的主要目的在于,当条件满足(即返回 TRUE 时),结果为空值;该结果稍后将作为 OR 函数的一个参数,并进一步用于 IF 函数中的判断条件之一。

第三个判断

第一个判断和第二判断需要一起进行判断,这个是一个或者(OR)逻辑,也就是只需要满足一个TRUE就返回TRUE,而在动态数组公式中,在某些情况下符号“+”也能替代OR逻辑,所以公式可以按以下方式写:

=LET(D,DROP(P3#,,1),C,DROP(P3#,,-1),H,O5#,G,N5#,IF((H<=C)+(G>=D),"",FALSE))

公式解释:

D = DROP(P3#, , 1):从 P3# 中移除最后一列得到开工时间。

C = DROP(P3#, , -1):从 P3# 中移除第一列得到每天的累计工时加上开工时间。

H = O5#:表示每张生产任务的完工时间。

G = N5#:表示每张生产任务的开工时间。

判断逻辑如下:

(H <= C):如果完工时间小于或等于每天的累计工时加上开工时间,则该部分为 TRUE。

(G >= D):如果 G 大于或等于开工时间,则该部分为 TRUE。

使用加号 + 来替代 OR 逻辑,这意味着当上述任一条件为 TRUE 时,整体表达式的计算结果非零(即视为 TRUE),从而触发 IF 函数内的第一个分支,返回空字符串 ""。

如果两个条件都为 FALSE,则 IF 函数返回 FALSE。

定义成中文

为了便于理解,可以将相关参数用 LET 函数定义为中文名称。这样修改后的公式如下:

=LET(UPH,L5#,出勤工时,P2#,累计出勤,P3#,完工时间,O5#,开工时间,N5#,订单用时,M5#,第二天累计,DROP(累计出勤,,1),第一天累计,DROP(累计出勤,,-1),IF((完工时间<=第一天累计)+(开工时间>=第二天累计),"",FALSE))

公式解释:

UPH:表示每小时单位生产量(Unit Per Hour),对应于 L5#。

出勤工时:代表每天的实际工作小时数,对应于 P2#。

累计出勤:表示到目前为止的总工作小时数,包括了所有之前的天数,对应于 P3#。

完工时间:每个生产任务的预计完成时间,对应于 O5#。

开工时间:每个生产任务的开始时间,对应于 N5#。

订单用时:完成一个订单所需的总时间,对应于 M5#。

第二天累计:从 累计出勤 中移除第一列后得到的数据,即第二天及以后的累计工时,通过 DROP(累计出勤, , 1) 得到。

第一天累计:从 累计出勤 中移除最后一列后得到的数据,即前一天的累计工时,通过 DROP(累计出勤, , -1) 得到。

逻辑判断:

(完工时间 <= 第一天累计):如果某个生产任务的完工时间小于或等于前一天的累计工时,则该部分为 TRUE。

(开工时间 >= 第二天累计):如果某个生产任务的开工时间大于或等于第二天及之后的累计工时,则该部分也为 TRUE。

使用加号 + 来替代 OR 逻辑操作符。如果上述任一条件成立(非零值),则整个表达式被视为 TRUE,并且 IF 函数返回空字符串 ""。

如果两个条件都不满足(即结果为 0),则 IF 函数返回 FALSE。

未完待续……

最后总结篇

通过上述讨论,我们可以看到动态数组全自动排程中的逻辑判断是基于一系列复杂的条件来完成的。首先,我们进行了初步的判断,以确定开工时间是否大于或等于第二天的累计工时。接着,第二个判断关注的是每个工单首次排程后的结果,即完工时间与每天累计工时加上开工时间的关系。最后,我们将这两个判断结合起来,利用 OR 逻辑(在公式中使用加号“+”代替)进行综合评估。

整个过程体现了如何利用 Excel &WPS的动态数组函数和逻辑运算符(如 IF、OR 和 AND)来构建一个高效的排程系统。通过对生产任务的时间节点进行细致分析,该系统能够自动识别出不需要进一步调整的任务,并对需要更多安排的任务进行更深入的处理。这种自动化方法不仅提高了工作效率,还减少了人为错误的可能性。

此外,将关键参数定义为中文名称也极大地增强了公式的可读性和维护性,使得非技术背景的用户也能更容易地理解这些复杂计算背后的逻辑。总之,这一系列的逻辑判断构成了一个强大而灵活的工具,用于优化生产计划和资源分配。

0 阅读:5

职场计划有古哥

简介:感谢大家的关注