全文约2793字;
阅读时间:约4分钟;
听完时间:约8分钟;
在生产计划中,对订单进行无限产能排程是对订单预计交期的一种初步评估方式,能够快速预测订单的预计交货时间。通常情况下,无限产能排程假设物料齐备、可以连续生产,并且不考虑休息日等常见约束条件。
在表格中编制无限产能计划是生产计划员(PMC)的一项基本技能。今天,古老师将分享如何处理大量订单,在表格中进行无限产能规划,以迅速确定每个订单的预计开工日期和完成日期,同时也会介绍后续快速调整订单的一些技巧。编制此类表格所需的基本输入数据包括:订单信息、可用生产线设置、标准单位小时产量(UPH),以及工作日历等;
单设备编制计划首先,设计一张适用于单设备的无限产能排程表。准备工作需要满足以下条件:
输入信息:
排产线体:在A列输入设备相关信息,这里假设仅有一条装配线(1#)。
生产任务:在B列列出订单相关信息,例如WK-01、WK-02等生产任务。
生产数量:在C列填写各订单所需的生产数量,如1000件、2000件等。
小时产能:在D列记录每种产品的生产效率,比如每小时100件或200件。
输出信息:
用时:在E列中使用公式=C2/D2来计算完成每个订单所需的总时间(以小时为单位)。
预计开工日期:在F列开始处填入当前日期,例如使用=TODAY()函数。
预计完工日期:在G列中利用公式=F2+E2/24确定首个订单的预计完工日期(注意将小时转换为天数)。
接下来,从第二个订单开始:
在F3单元格输入=G2,即上一个订单的预计完工日期作为下一个订单的预计开工日期。
在G3单元格继续应用公式=F3+E3/24来更新该订单的预计完工日期。对于后续订单,可以直接向下填充这两个公式至列表末尾,从而自动计算出所有订单的预计开工和完工日期(按24小时制计算每一天)。
动态扩展化虽然通过表格利用无限产能的方法已经评估出了每个订单的具体预计开工和完工时间,但这种方法存在以下问题:
当订单信息发生变化时,需要手动更新相关公式。
如果需要调整订单的顺序,则不能自动完成,必须手动进行(例如使用剪切和粘贴操作)。
每日工作时长固定为24小时,缺乏灵活性,无法根据实际情况调整。
为了解决上述问题,我们需要重新设计该表,以便实现订单无限产能评审的快速性、自动化变更以及灵活调整。具体改进措施包括:
引入动态公式:使用更高级的Excel和WPS函数或VBA脚本,使公式能够自动适应数据的变化,减少手动更新的工作量。
支持订单顺序的自动调整:开发一种机制,允许用户通过简单的操作(如拖放)来更改订单顺序,并且所有相关的日期计算会随之自动更新。
可配置的工作时长:设置一个参数来定义每日的工作时长,使得整个排程可以根据不同的工作时长需求灵活调整。
通过这些改进,可以大大提高生产计划的灵活性和效率,同时减少人工干预的需求。
信息动态数组化为了实现全自动公式的动态扩展,报表中的公式将采用更高级的Excel和WPS函数进行转换,从而让公式能够自动适应数据的变化,减少手动更新的工作量。具体操作步骤如下:
保持原有的输入信息不变。
在F2单元格中输入公式 =TOCOL(A2:A1000,3),然后向右填充至I2单元格。
这里的A1000是指定的数据区域上限。如果实际订单录入信息超过了这个范围,可以调整该值(例如改为A10000),以确保数据可以在更大的范围内动态扩展。
接下来我们将计算每张订单所需的时长,因为这将与预计的开工时间(例如当天日期10-23)一起使用。首先,我们需要确定一天的工作标准。在O1单元格中输入一天的标准工作小时数,比如输入数字24表示一天工作24小时,或者输入12表示一天工作12小时。
然后,在J2单元格中录入以下动态数组公式:
= (H2# / I2#) / O1
公式的解释如下:
H2#:代表一个动态数组,它会自动扩展以包含所有相关的订单未完成数量。
I2#:表示日出勤标准,即每天实际工作的小时数。
O1:是我们之前设定的一天的标准工作小时数。
通过这个公式,我们可以计算出每个订单基于当前未完成的数量以及日出勤标准和一天工作小时数所需的时间。
开工完工动态数组化在计算出每张订单转换后的用时天数后,接下来需要将预计开工时间和预计完工时间动态数组化。首先,在O2单元格中输入第一张订单的预计开工日期,例如:2024/10/23 0:00。
然后,新建一列用于记录“预计开工时间”。在该列的第一个数据单元格中录入以下动态数组公式:
=LET(线体,F2#,开工时间,O2,SCAN(0,线体,LAMBDA(x,y,IF(y=OFFSET(y,-1,),x+OFFSET(y,-1,4),开工时间))))
公式解释如下:
线体:代表一个动态数组,它包含了所有相关的订单排产线体信息。
开工时间:是指定的第一张订单的预计开工时间,即O2单元格中的值。
SCAN 函数用于遍历整个数组,并通过提供的LAMBDA函数对每个元素进行处理。
初始值为0。
对于数组中的每一个元素(这里指代线体中的每一个元素),如果当前订单与上一行的订单相同,则累计加上上一行订单的用时天数(由OFFSET(y, -1, 4)获取)。这里的OFFSET(y, -1, 4)表示相对于当前行向上偏移1行并向右偏移4列的位置。
如果当前订单与上一行不同,则取初始的开工时间作为新的起始点。
最终结果是一个动态数组,显示了每个订单基于其前序订单完成情况下的预计开工时间。
完工时间的公式与开工时类似,录入动态数组公式:
=LET(线体,F2#,开工时间,O2,开工时间+SCAN(0,线体,LAMBDA(X,Y,LET(A,OFFSET(Y,,4),IF(Y=OFFSET(Y,-1,),X+A,A)))))
公式解释:
SCAN 函数遍历整个线体数组,并通过提供的LAMBDA函数对每个元素进行处理。
初始值为0。
对于数组中的每一个元素(这里指代线体中的每一个订单),定义了一个内部变量A,它等于当前行向右偏移4列的值(假设这列包含每张订单所需的天数)。
如果当前订单(Y)与上一行的订单相同,则累计加上上一行订单的用时天数(X + A);如果不同,则直接使用当前订单的用时天数A作为新的累积值。
最后,将这个累积的结果加到初始的开工时间上,得到每个订单的预计完工时间。
到此为止,我们已经完成了将传统公式转换为动态数组公式的步骤。接下来的目标是实现订单的动态快速调整,以支持无限产能下的顺序生产优化。由于时间关系,这部分内容我将在明天继续分享。
最后的总结通过今天的分享,我们已经介绍了如何在Excel或WPS表格中使用动态数组公式来实现无限产能排程。这种方法不仅能够快速预测订单的预计交货时间,还能大大减少手动更新的工作量,并提高生产计划的灵活性和效率。
我们首先设计了适用于单设备的无限产能排程表,包括输入信息如订单、生产数量、小时产能等,以及输出信息如用时、预计开工日期和预计完工日期。接着,我们讨论了传统方法存在的问题,比如手动更新公式和调整订单顺序的不便,并提出了改进措施,包括引入更高级的函数、支持订单顺序的自动调整以及设置可配置的工作时长。
此外,我们还详细说明了如何将信息动态数组化,从而实现全自动公式的动态扩展。这包括计算每张订单所需的时长,以及将预计开工时间和预计完工时间动态数组化,使得整个过程更加自动化和灵活。
通过这些步骤,我们可以更好地应对订单变化,快速调整生产计划,确保生产线的高效运行。明天,我将继续分享关于如何进一步优化无限产能排程的具体技巧,特别是如何实现订单的动态快速调整,以适应实际生产中的各种变化。希望这些内容能帮助大家提升生产计划管理的能力。