续接前文《全自动MRP物料需求报表运算》-第三章
在零件根据BOM物料清单自动展开并依据对应日期排程表中的零件数量进行整合后,我们需进一步处理数据以确保其准确性。这里的零件数量并非简单引用,因为若采用XLOOKUP函数,零件的唯一性至关重要,但下图的排程表中零件存在重复项。
观察效果图:
图中的生产计划表其实是一个简化的排程表。在实际的排程中,唯一标识通常为生产订单号。只要我们使用生产订单号作为引用的关键,问题便可迎刃而解。与处理日期相似,任务号的逻辑也是通过判断零件数量来确定展开行数,只需将引用的区域更改为任务号即可。
录入相关公式如下:
=XLOOKUP(按需生成的序列号(基于K3列的总和),通过SCAN函数扫描K3列及其LAMBDA函数进行累加操作,FILTER函数过滤G3至G30000中非空值)
进一步的效果如下所展示:
每个交期代表一个批次,那么对于按批次计算的物料需求应该如何处理呢?直接将分解好的需求表与任务号所对应的任务数量相乘即可得出答案。
具体公式如下:
=XLOOKUP(U3,F1至F10000的范围,H1至H10000的范围)
在获取分解后的任务数量后,还需根据子件用量进行进一步计算。若要实现全自动动态数组,需对子件用量的公式进行调整。
依据动态数组的逻辑,一个连续的区域即可视为动态数组。如W3区域的设定。
此区域不能直接与上述的动态数组进行运算。为解决这一问题,我们最佳的策略是利用CHOOSECOLS函数来拆分这样的动态数组区域。
故而,将公式细分为以下三个独立的动态数组公式便可实现与订单数量的运算:
公式1:
=CHOOSECOLS(通过REDUCE和FILTER函数处理的G3至G30000区域的结果,并使用DROP函数取其第一列),第3列
公式2:
=XLOOKUP(U3,F1至F10000的范围,H1至H10000的范围) Y3
上述图例展示了一维MRP需求表的完成情况。其中子件、日期均有重复项,这是一维数据的特点。若需提供给其他职能部门,则需将其转换为二维的MRP毛需求表。这一步同样需设计为全自动。
公式1(子件去重):
=UNIQUE(X3)
公式2(日期去重后升序排序):
=TOROW(SORT(UNIQUE(V3)))
公式3(多条件汇总):
=SUMIFS(Z3,X3,指定的条件AB3,V3,指定的条件AC2)
为验证其全自动性,我们测试了不同数据以确认其成功验证。
验证结果表明,无论生产排程表增加订单、需求或是调整排程日期,均能一键计算出MRP物料的毛需求。
至此,所有需求均已圆满完成。
建议从《全自动MRP物料需求运算报表》-第一章开始阅读,以便完整理解整个思路。
其他关键数据公式:
子件数量:
=COUNTIFS($B$3至$B$30000的范围中,FILTER(G3至G10000的范围中非空值))
任务号: