314MRP多阶需求运算报表-WPS表格版本(10)

职场计划有古哥 2024-02-29 16:01:42

在完成2阶的MRP物料需求后,接下来就是继续3阶、4阶的MRP运算了,一直到分解到最后一层。

2阶的需求分解如下图1所示:

图 1

3阶需求分解

3阶的需求分解与2阶的公式一模一样,只需要在2阶的基础上把一维排程表引用过来就可以了,直接复制表5(2阶分解),并且命名为表6(3阶分解),同时更新以下公式:

料号:

='5.2阶分解'!AD3#

数量:

='5.2阶分解'!AE3#

日期:

='5.2阶分解'!AF3#

后面的公式继续用原来的公式即可。

完成后效果如下图2所示:

图 2

4阶需求分解

3阶的公式更新完后,继续复制3阶分解这张表,并命名为7.4阶需求,然后把3阶的MPS需求引用过来,录入动态数组公式:

料号:

='6.3阶需求表'!AD3#

数量:

='6.3阶需求表'!AE3#

日期:

='6.3阶需求表'!AF3#

此时如果零件数这里显示没有数据时,代表已经到最底层了。不用继续分解了。

效果如下图3所示:

图 3

屏蔽错误值

到了这里发现,如果是最底层的话,辅助这里为出现公式错误了,为了方便后面更新BOM出现第5层以上的数据,同时也需要美化表格,这里把错误值一一用屏蔽错误函数IFERROR屏蔽掉。

辅助序号:

=IFERROR(TEXTSPLIT(TEXTJOIN("/",,FILTER(F3:F4000,F3:F4000<>0)),,"/",2),0)

辅助合并:

=IFERROR(M3#&"-"&J3#,0)

辅助料号:

=IFERROR(LET(A,FILTER(B3:H4000,F3:F4000<>0),TEXTSPLIT(CONCAT(REPT(CHOOSECOLS(A,1)&CHOOSECOLS(A,7)&"/",CHOOSECOLS(A,4))),,"/",2)),0)

…………

错误全部屏蔽后的效果如下图4所示:

图 4

合并所有需求:

通过多次分解后,得到所有子件的需求,因为这些需求分别在不同报表中,所以需要把这些需求全部合并在一张表上,新建表8,并命名为合并需求。

录入对应的子件标题后,录入动态数组函数:

=LET(A,VSTACK('4.1阶分解:7.4阶需求'!AD3:AF3000),FILTER(A,TAKE(A,,1)<>0))

函数释义:

上面的公式用了3个技巧:

第1个技巧:VSTACK的批量合并不同工作页面的技巧,写法是“'4.1阶分解:7.4阶需求'!AD3:AF3000”,这代表从1阶到4阶,在AD3:AF3000 的这个范围全部合并在一起。其中3000为预留的空间。

第2个技巧:定义名称技巧,这里因为预留了3000的原因,合并后,4张表大概就是3000*4=12000行数据,其中包括空单元格,所以需要筛选不为0的数据区。提前用LET定义此区域为A,后续配合筛选函数和保留数组函数来筛选。

第3个技巧:筛选不为0的技巧,录入FILTER(A,TAKE(A,,1)<>0),这个函数,表示,显示A,条件为A的第1列不为0,用TAKE配合参数1,保留了A区域的第1列。

效果如下图5所示:

图 5

合并需求转二维

合并的需求是一维表,太长了,转换成二维表可以方便看子件需求。转换前把这个区域转换成单列以方便引用,分别录入以下函数:

子件:

=CHOOSECOLS(LET(A,VSTACK('4.1阶分解:7.4阶需求'!AD3:AF3000),FILTER(A,TAKE(A,,1)<>0)),1)

料号:

=CHOOSECOLS(LET(A,VSTACK('4.1阶分解:7.4阶需求'!AD3:AF3000),FILTER(A,TAKE(A,,1)<>0)),2)

日期:

=CHOOSECOLS(LET(A,VSTACK('4.1阶分解:7.4阶需求'!AD3:AF3000),FILTER(A,TAKE(A,,1)<>0)),3)

完成公式的单列后,开始转二维:

子件:

=UNIQUE(B3#)

日期:

=TOROW(SORT(UNIQUE(D3#)))

汇总:

=TOROW(SORT(UNIQUE(D3#)))

完成后如下图6所示:

图 6

这样就完成了全部的MRP多阶物料需求运算。

源文件:

314 WPS 版本 MRP需求运算.XLSX

0 阅读:2

职场计划有古哥

简介:感谢大家的关注