上文讲到分别把BOM物料清单中不同等级的元件料号分别展开,并通过展开的元件料号去判断是采购件还是自制件,判断出结果后,再分别去查找对应的采购周期与自制周期。
对于自制件中还有自制件加采购件的问题,用上层级找下层的方法可以找到,这样就相当各个独立的自制件拿出来判断周期了。
全阶1层
前面已经分阶把自制件的周期全部计算出来了,现在需要把全阶的周期中的1层单独放到一个表中作为数据库引用。这样单独作成品级的零件引用。新建表9 全阶1层,并录入以下公式:
A2 =SORT(UNIQUE(FILTER('1.BOM表'!C:C,('1.BOM表'!B:B="∟1"))),1,1)
公式释义:筛选BOM表1中的1层,并删除重复项,后进行排序。
知识点:筛选函数(FILTER)+去重函数(UNIQUE)+排序函数(SORT),这是一个经典的用法.
B2 =XLOOKUP(A2,'1.BOM表'!C:C,'1.BOM表'!D:D)
C2 =LEFT(A2,3)
D2 =XLOOKUP(A2,'1.BOM表'!C:C,'1.BOM表'!F:F)
E2 =IFS(D2="采购",XLOOKUP(A2,'2.采购周期'!A:A,'2.采购周期'!C:C),D2="自制",XLOOKUP(A2,'8.1层'!A:A,'8.1层'!D:D))
公式全部下拉填充后得到下图。

主件1阶
有了表9的1阶元件料号的数据库后,就可以把表1中的BOM数据中的1阶BOM单独筛选到这里形成一个一维报表。新建10.主件1阶表并录入函数:
A2 =FILTER('1.BOM表'!A:F,'1.BOM表'!B:B='1.BOM表'!B20)
G2 =XLOOKUP(C2,'9.全阶1层'!A:A,'9.全阶1层'!E:E)
H2 =TEXTJOIN("-",,C2,G2&"天")
下拉填充公式得到:

周期排序
为了方便引用,还需要对此1阶的元件物料进行排序,所以继续做一列辅助列,并录入以下公式:
K2 =SORTBY(A2:H52,A2:A52,1,G2:G52,-1)
公式释义:对数据区域进行多条件排序,按主件料号升序排序和制造周期降序排序。
结果如下图:

产品周期表
需要把表1中的主件去重后到A列,新建表11.产品周期表并录入以下公式:
A2=DROP(UNIQUE('1.BOM表'!A:A),-1)
同时把对应的标题加上,如装配周期、排队周期、零件周期等;

装配周期:零件全部齐套准备好后的装配周期,装配完后就可以入库了。如果装配这边还细分可以加上组装周期、包装周期等细化周期;
排队周期:订单来了需要排队,一般情况下预留这个周期是预计装配的在制时间和宽放时间;
零件周期:就是通过BOM展开后最零件最大完成周期时间;
零件数公式:
=COUNTIFS('1.BOM表'!A:A,'11、产品周期表'!A2,'1.BOM表'!B:B,"∟1")
总周期公式:
=SUM(D2:F2)
零件周期公式:
=MAXIFS('10.主件1阶'!G:G,'10.主件1阶'!A:A,A2)
周期前1到6项零件对应周期明细公式:
=TOROW(TAKE(FILTER('10.主件1阶'!$R:$R,'10.主件1阶'!$K:$K='11、产品周期表'!$A2),6))
最终效果如上图,实现一键动态分析产品周期表。为长周期物料,瓶颈物料做预警提示。

实现了当初制定的目标:
《产品周期表》是一个根据BOM物料清单制定的一个半自动周期Excel统计,此表需要实现以下功能:
功能1:BOM表更新后,自动计算出产品0层的产品周期
功能2:设定承诺客户周期后,当产品周期大于客户周期后,自动提醒;
功能3:作为长周期物料的设定标准之一的数据库
功能4:实现料号级周期管理;
未完待续……
资料索引号:16 产品周期串联报表--3.XLSX
