在完成1阶的MRP物料需求后,现在可以继续2阶的物料需求,与计算1阶需求的原理一下,这里公式可以不用再写了,可以直接复制1阶的公式,因为1阶的需求一维表,与0阶产品阶的格式是一样的。
效果如下图1所示:
图 1
筛选不为0的数据在进行2阶BOM表分解的时候,需要注意的就是需要对数据进行筛选,筛选不等于0的数据,这里等于0的代表1阶的零件没有下层了,有下层才会显示有零件。如下图2中的A2代表没有下层了。
如下图2所示:
图 2
如辅助零件数这一列,需要单独筛选不等于0的,录入动态数组公式:
=FILTER(E3:E4000,E3:E4000<>0)
范围取值大一点,如后续数据超过这个范围,继续增加筛选范围就可以了;知道这个技巧后,接下来就是重复1阶的公式,把1阶的公式中的数据换成筛选数据的公式(动态数组);
2阶MRP需求分解公式辅助序号:
=TEXTSPLIT(TEXTJOIN("/",,FILTER(F3:F4000,F3:F4000<>0)),,"/",2)
函数释义:
2阶零件的序号,配合父件形成唯一值;
辅助父件:
=TEXTSPLIT(CONCAT(REPT(FILTER(B3:B4000,E3:E4000<>0)&"/",FILTER(E3:E4000,E3:E4000<>0))),,"/",2)
函数释义:
2阶零件的,配合2阶零件形成重复。
辅助合并:
=M3#&"-"&J3#
函数释义:
2阶零件合并成一起;完成后如下图3所示:
图 3
注意辅助料号辅助料号这里用了一个技巧,先筛选一个大范围,再配合选择列CHOOSECOLS函数进行列选择,并定义LET名称,形成非0值的辅助料号。
录入动态数组公式:
=LET(A,FILTER(B3:H4000,F3:F4000<>0),TEXTSPLIT(CONCAT(REPT(CHOOSECOLS(A,1)&CHOOSECOLS(A,7)&"/",CHOOSECOLS(A,4))),,"/",2))
函数释义:
注意定义的区域A,是一个大范围,代表B3:H4000,这个范围符号F3:F4000<>0的数据,最后分别连接第1列和第7列后,重复第4列。
效果如下图4所示:
图 4
重复1阶的公式录入完以上的公式后,就可以重复1阶MRP物料需求运算中的函数公式了,因为逻辑都一样,所以公式是可以直接复制的,注意复制的时候不要直接复制单元格,而是在地址栏复制公式后再粘贴。
数量:
=XLOOKUP(L3#,G3#,C3#)
子件:
=XLOOKUP(K3#,'2.BOM'!B:B,'2.BOM'!E:E)
用量:
=XLOOKUP(K3#,'2.BOM'!B:B,'2.BOM'!F:F)
子件需求:=N3#*P3#
日期:
=XLOOKUP(L3#,G3#,D3#)
表3:对2阶毛需求进行排序
辅助父件:
=CHOOSECOLS(SORT(SORT($M$3:$R$63,6,1),3,1),COLUMN(A1))
公式向右填充到日期
库存:
=XLOOKUP(V3#,'3.库存'!B:B,'3.库存'!C:C,0)
辅助判断:
=Z3-SUMIFS($X$3:X3,$V$3:V3,V3) 下拉填充
子件需求:
=IF(AA3>=0,0,IF(ABS(AA3)>X3,X3,-AA3)),下拉填充;
完成后如下图5所示:
图 5
2阶净需求一维表与二维表一维表这里的公式为:
2阶子件:
=CHOOSECOLS(FILTER(V3:AB4000,AB3:AB4000<>0),1)
2阶子件需求:
=CHOOSECOLS(FILTER(V3:AB4000,AB3:AB4000<>0),7)
2阶子件日期:
=CHOOSECOLS(FILTER(V3:AB4000,AB3:AB4000<>0),4)-1
这里的2阶还是前置1一天,可以根据实际情况前置2天或者多天。
二维表这里的公式:
2阶子件:
=UNIQUE(AD3#)
2阶日期 :
=TOROW(SORT(UNIQUE(AF3#)))
2阶汇总:
=SUMIFS(AE:AE,AD:AD,AH3#,AF:AF,AI2#)
完成后如下图6所示:
图 6
小结一下到这里,这张MRP多阶物料需求运算报表基本设计完毕,接下了就是BOM物料清单有几层,就重复几次公式,一层一层运算,运算完后,最后汇总统计分析就可以了;
这里有几个例外没有考虑在这张表上,如果零件重复在不同阶层的话,就会出现多次扣减库存的,这里默认不会出现,如果出现就会计算错误。
这里也没有考虑BOM中的替代问题,如有替代的话,需要重复写函数。加上以上两点的话,会使得表格的函数复杂,并且运算速度变慢,所以暂时不加。
明天可以结束了……
未完待续……