485PMC生产计划精细化管理:全自动每日欠料齐套-4

职场计划有古哥 2024-08-18 02:11:55

全文约1500 字;

阅读时间:约4分钟;

听完时间:约8分钟;

继昨天的文章之后,我已经将表4中的1:1引用应用于二维MPS主生产计划表,并通过公式将其转换为一维表。随后,我利用IF、XLOOKUP和COUNTIFS函数对这一维表进行了处理,完成了用料分配表分拆前的数据准备工作,确定了分配比例和分配数量。下一步将是根据这些分配比例和数量来对表2中的用料分析进行工单分拆。

用料分析引用

先前创建的表2用料分析表被定义为输入表。每当MPS生产计划更新时,该用料分析表也需相应更新。为了实现这一点,我们需要设计一个机制,使得表4能够自动动态扩展。

因此,我们采用类似于MPS主生产计划的方法,进行1:1的动态数组自动扩展引用。首先,在X1单元格录入标题:“3. 生产任务用料分析表”,并在其下方复制原来表2用料分析表的标题。完成后,在相应位置录入以下公式,并向右(X2:AG2)填充:

=TOCOL('2. 用料分析'!B3:B20000, 3)

公式解释:

此公式将“用料分析”中的B3到B20000行的数据转换为一列,并使用参数3来忽略空值。向右填充后,相当于将表2中的“工单”、“产品”、“数量”、“完成数”、“未完成”、“子件”、“定额”、“标准用量”、“实际领用”以及“未领用”等所有数据都引用了过来。

效果如下图所示:

引用分拆数据

在对表2用料分析进行1:1引用后,接下来需要对这张表进行分拆前的准备。为此,在表尾增加一列,并将该列的标题命名为“分拆数”。然后,在相应的单元格中录入以下公式:

=XLOOKUP(X3#, M3#, R3#)

公式解释:

此公式用于查找一维排程表中与当前工单号相对应的分拆数字。返回的结果数字4表示工单WK-01将被分拆成4张工单。

开始父件分拆

有了这个分拆数字后,就可以对用料分析中的父件部分进行分拆。分拆的原理是让每一行重复指定次数,例如数字4,意味着每一行将变为4行。在AJ1单元格录入标题:“4. 生产任务用料分析分拆表”,并在下方录入对应的标题。接着,在相应的位置录入以下公式:

工单

=TEXTSPLIT(CONCAT(REPT(X3# & "#", AH3#)), "#", 2)

产品

=TEXTSPLIT(CONCAT(REPT(Y3# & "#", AH3#)), "#", 2)

子件:

=TEXTSPLIT(CONCAT(REPT(AC3#&"#",$AH$3#)),,"#",2)

公式解释:

这些公式用于重复工单和产品的名称。具体来说,它们会将每个工单号和产品名称重复指定的次数(即分拆数),并通过添加特殊字符“#”来连接重复的部分。TEXTSPLIT函数随后将这些连接起来的字符串按照“#”分割,并返回所需的值。这样,每行就会根据分拆数重复相应的次数。重复的效果如下:

开始订单分拆

在完成父件分拆后,接下来需要对工单数量进行分拆,即将WK-01的工单数量1000分拆成300、300、300、100。同时,排程日期和子件也需要进行相应的分拆,例如8月18日、8月19日、8月20日、8月21日。

排程数量

=DROP(REDUCE("", X3#, LAMBDA(X, Y, VSTACK(X, FILTER(O3#, M3# = Y)))), 1)

排程日期

=DROP(REDUCE("", X3#, LAMBDA(X, Y, VSTACK(X, FILTER(P3#, M3# = Y)))), 1)

公式解释:

这些公式用于筛选主生产计划一维表中与用料分析表中工单号相匹配的工单数量和排程日期。例如,假设一维表中的WK-01对应4个不同的工单数量(300、300、300、100),而用料分析表中第一行子件A1对应的工单号也是WK-01,那么这些公式就会返回子件A1对应的4个工单数量和相应的排程日期。

使用REDUCE函数对所有用料分析中的子件进行堆叠操作,这意味着所有子件都会根据分拆数重复相应的行数,并且堆叠在一起。同样的原理也适用于排程日期。

今日思路小结

为了实现精确的日欠料计算,而不是简单地按工单总数(例如1000)来核对欠料,我们需要对工单进行主生产计划(MPS)分拆。分拆不仅仅涉及父件,还包括子件。

父件分拆的技术思路

父件分拆的技术思路是将MPS的二维表转换为一维表进行分拆,这里使用的公式包括TOCOL和IF函数。

子件分拆

子件分拆更为复杂。首先,需要确定父件的分拆数量。这里使用XLOOKUP函数来引用父件的分拆数,而分拆数则是通过COUNTIFS函数统计得出的。

得到分拆数后,子件的分拆分为两个主要步骤:

简单的重复:使用TEXTSPLIT、CONCAT和REPT函数组合实现。

堆叠实现:使用DROP、REDUCE、LAMBDA、VSTACK和FILTER函数组合实现。

这两种方法的原理和思路都非常重要。掌握这些思路后,可以在PMC的工作场景中解决各种需要进行分拆的技术问题。

未完待续……

0 阅读:5

职场计划有古哥

简介:感谢大家的关注