在昨日的文章中,我们通过多维表格的导入与同步功能,成功将物料清单(BOM)接入系统,并深入分析了“父件对应子件数量”与“子件被多少父件共用”等关键维度。这些数据不仅清晰回答了:
- 我们有多少个SKU(父件)?
- 每个SKU包含多少子件?
- 哪些子件具备高通用性?
更为后续的备货策略、安全库存设定及采购批量优化提供了扎实的数据支撑。今天,我们将继续完善这一MRP分析小程序。为提升通用性,尤其兼顾仍依赖手工Excel报表的企业场景,本方案默认BOM清单中不包含子件属性字段(如采购件、自制件)。传统做法依赖人工逐条标注,效率低且易出错。但在标准父子型BOM结构下,我们可通过自动化算法逻辑快速识别并补全属性,实现智能分类——让系统“自己看懂”BOM!
属性判断
在本系列第一章中,我们构建了三个核心数据表:
物料清单BOM —— 原始导入的BOM数据表
父件对应子件 —— 统计每个父件所包含的子件数量
子件对应父件 —— 分析每个子件被多少个父件所引用
其中,表1为原始数据源,表2与表3均为基于表1生成的自动运算统计表,实现数据的多维透视与关联分析。接下来,我们将在此基础上进一步扩展系统能力:自动判断子件属性(采购件 or 自制件),以支持后续MRP运算中的供应策略区分。

判断逻辑
在标准父子型BOM结构中,一个基本业务规则是:
若某物料作为“父件”出现在BOM结构中,则其必为自制件(因其下含有子件);反之,仅作为子件出现的物料,则为采购件。因此,我们可通过查找该物料是否在“父件对应子件”表中存在记录,来判断其是否具备“被展开”的能力,进而推断其属性。

实现方式
在多维表格环境中,公式的编写逻辑与传统Excel存在本质区别。
与依赖单元格地址(如 A1:B100)或绝对引用符号(如 $A$1)的传统表格不同,多维表格采用“字段名引用”模式,通过语义化字段标题实现数据关联,更具可读性与稳定性。
核心引用语法说明
[字段名]:表示引用当前记录所在列的全部值(整列)
[@字段名]:表示引用当前行中指定字段的值(等效于“本行上下文”)
这种“以字段为中心”的设计,使得公式不再依赖物理位置,更适合协作环境下的动态数据管理。

录入以下公式:
IFNA(IF(LEN(XLOOKUP([@子件编码],父件对应子件![父件编码],父件对应子件![父件编码]))>0,”自制件”),”采购件”)
公式说明:
[@子件编码]:获取当前行的“子件编码”值
父件对应子件![父件编码] :引用“父件对应子件”表中的“父件编码”字段所有值
XLOOKUP(…):查找当前子件编码是否在“父件编码”列表中出现
LEN(…) > 0:判断是否找到匹配项(非空即存在)
IF(…, “自制件”, “采购件”):存在则为自制件,否则为采购件
IFNA(…, “采购件”):处理查找失败(#N/A)情况,统一归类为采购件

公式保存后,系统将自动逐行计算,为每条记录动态生成对应的子件属性。例如:
若子件 600508061397 同时出现在“父件对应子件”表中作为父件,则标记为“自制件”,若仅作为子件使用,则标记为 “采购件”
该过程完全自动化,无需人工干预,且当源BOM数据更新时,属性字段将实时同步刷新,确保分析结果始终准确。通过这一机制,我们成功将业务规则内嵌至数据模型中,实现了从“静态清单”到“智能判断”的跃迁。
未完待续……
