PMC表格模型12:开工日期与完工日期判断模型

古哥计划

优秀创作者

全文约1700字

大家好,我是古老师,专注于PMC(生产计划与控制)领域的教学。今天我们要介绍的是PMC系列中的第12个表格模型——开工与完工日期判断模型。

此模型适用于在编制二维生产计划时,动态判断每个订单的预计开工日和完工日的情况。例如,在《生产计划月度排程表》中,A列为订单编号,D1:G1为水平方向的日期(如1月1日、2日、3日等),而交错区域则表示对应订单的排程数量。我们的目标是在B列和C列录入公式,以动态显示A列各订单的排程开工日与完工日,并且这些信息会根据D列到G列排程数量的变化自动更新。

这种方法的优点在于,即使水平方向的排程跨越了多个屏幕(比如超过30天),我们也能轻松查看每张订单的开工与完工时间,无需滚动屏幕查找。这样不仅提高了工作效率,还减少了因手动操作可能引起的错误。

传统公式

古老师的表格模型会根据不同版本的表格设计相应的公式。对于旧版本的表格,我们将使用传统公式进行编制。继续以上述案例为例,在B列和C列分别输入开工日期和完工日期的公式,并将其填充到相应的位置:

B2=MIN(IF(D2:G2>0,$D$1:$G$1))

C2=MAX(IF(D2:G2>0,$D$1:$G$1))

公式解释:

开工日期公式:此公式通过查找D2到G2范围内第一个非零值对应的日期来确定订单的预计开工日。它检查D2到G2范围内的数值,若大于0,则返回对应的日期,并用 MIN 函数找到这些日期中的最小值,即最早的开工日期。

完工日期公式:此公式通过查找D2到G2范围内最后一个非零值对应的日期来确定订单的预计完工日。它检查D2到G2范围内的数值,若大于0,则返回对应的日期,并用 MAX 函数找到这些日期中的最大值,即最晚的完工日期。

这两个公式结合使用,可以根据排程数量的变化自动更新订单的开工与完工日期。

动态数组

传统公式的劣势

传统公式的劣势在于用户需要手动填充公式,并且必须锁定单元格区域(如$D$1:$G$1)。相比之下,动态数组公式则不需要这些操作,使用起来更加简便。

将传统公式改为动态数组公式的核心思路之一是使用动态数组函数,如BYROW 或 BYCOL 等。这样可以在 B2 和 C2 单元格中直接输入动态数组公式,实现一键填充:

B2=BYROW(IF(D2:G9>0,D1:G1),MIN)

C2=BYROW(IF(D2:G9>0,D1:G1),MAX)

公式解释:

这个公式的原理与传统公式基本一致,核心在于使用BYROW 函数。此函数可以对 D2:G9 范围内的每个值进行批量处理,判断是否大于 0。然后,它会对符合条件的日期(即 D1:G1 范围内的日期)进行最值判断(使用 MIN 和 MAX),从而得到最小日期和最大日期,分别对应订单的开工日期和完工日期。

具体来说:

开工日期:通过BYROW(IF(D2:G9>0, D1:G1), MIN) 批量判断 D2:G9 范围内大于 0 的值,并找到对应的最小日期。

完工日期:通过BYROW(IF(D2:G9>0, D1:G1), MAX) 批量判断 D2:G9 范围内大于 0 的值,并找到对应的最大日期。

这种方法简化了操作步骤,无需手动填充或锁定单元格区域,使计算更加高效和准确。

动态扩展

虽然上述动态数组公式可以实现一键填充,但当数据增加时,仍需手动修改动态数组的引用参数以扩展单元格区域。为了实现完全动态扩展,可以在公式中提前预留参数中的单元格区域扩展。将B2 和 C2 单元格的动态数组公式更改为以下内容:

B2=TAKE(BYROW(IF(D2:L18>0,D1:L1),MIN),COUNTA(A2:A18))

C2=TAKE(BYROW(IF(D2:L18>0,D1:L1),MAX),COUNTA(A2:A18))

公式解释:

这些公式的架构与之前的动态数组公式相似,主要改进是扩大了参数范围,并使用TAKE 函数结合统计函数来动态确定边界范围。例如,区域 D2:L18 和水平方向 D1:L1 可以根据需要预留扩展范围。这样,公式能自动适应数据量的变化,无需手动调整引用范围,使操作更简便灵活。这两个公式确保在数据增加时,仍能准确计算订单的开工和完工日期。

通用公式

上面的公式是基于最小值和最大值来判断开工与完工日期,当水平方向是文本的时候,此动态数组公式不适用了,所以也可以升级为通用公式,也就是同时适合文本与数值的模型的公式。将B2 和 C2 单元格的动态数组公式更改为以下内容:

B2=TOCOL(BYROW(IF(D2:N25>0,D1:N1,A),LAMBDA(X,TAKE(TOROW(X,3),,1))),3)

C2=TOCOL(BYROW(IF(D2:N25>0,D1:N1,A),LAMBDA(X,TAKE(TOROW(X,3),,-1))),3)

公式解释:

开工日期:检查D2 到 N25 范围内的每个数值是否大于 0,如果是,则返回对应的日期(即 D1 到 N1 范围内的日期),否则返回列 A 的值(强制错误)。BYROW函数对每一行进行处理,使用 TOROW 函数将数据转置成单行,参数3强制屏蔽错误,并用 TAKE 函数提取第一个非空值(即最早的开工日期)。

完工日期:这个公式的工作原理类似,区别在于它使用 TAKE(..., , -1) 提取最后一个非空值(即最晚的完工日期)。

通过这种方式,公式能够适应文本和数值混合的数据,确保在任何情况下都能准确计算订单的开工日期和完工日期,而无需手动调整引用范围,使操作更加简便和灵活。

文章视频与文章文件:

【金山文档 | WPS云文档】 652 PMC表格模型12:开工日期与完工日期判断模型

https://kdocs.cn/l/cqDzHEPafTkC

湖南省
浏览 676
收藏
2
分享
2 +1
2
+1
全部评论 2
 
学习学习,有没有交流群啊
· 安徽省
回复
 
学习了
· 广东省
回复