在生产计划管理中,物控员在进行物料需求核算与齐套性分析时,常会遇到物料清单(BOM)中存在替代料的情况。尤其当某一子件存在多种可替代物料时,问题会变得更加复杂。例如,某零件 A 的子件 A-02,可能有 A-02-1 和 A-02-2 两种替代料,形成“一主多替”或“多替互换”的替代关系。

此类复杂的替代结构使得传统手工计算难以准确判断实际欠料情况:不仅要考虑主料的库存与需求,还需评估每个替代料的可用性、优先级及互斥规则,进而判断是否真正缺料。若依赖人工处理,极易出现遗漏、重复或误判,影响生产计划的准确性与交付效率。

告别手工算料:动态数组打造智能BOM替代分析 - 1

因此,面对复杂的BOM替代关系,工厂通常需要借助信息化系统(如ERP、MES或高级计划系统),或设计具备逻辑判断能力的自动化报表(如通过Excel动态数组公式或多维表格等),才能高效、准确地完成齐套分析与欠料计算,提升物料管控的精细化与智能化水平。

物料清单

某小型制造企业尚未实施信息化管理系统(如ERP或MES),其物料清单(BOM)采用手工方式进行登记与管理。BOM表格以Excel等电子表格工具为基础,采用二维结构进行组织:

垂直方向(行):表示标准的父子件层级结构,每一行对应一个父件及其某一子件的装配关系;

水平方向(列):用于表达替代料信息,通过设置“替代1”、“替代2”、“替代3”等并列字段,记录同一功能位置下的可选物料。

告别手工算料:动态数组打造智能BOM替代分析 - 1

例如上图中:父件为 A 的产品;在第3个子件位置(子件序=3)上使用主料 A03,标准用量为2;存在3个可替代物料:A03-1、A03-2、A03-3,在主料缺货时可按需选用。

上述二维结构的主要优点在于其直观性和易读性:

二维显示:通过垂直方向表示父子件的层级关系,水平方向列出替代料信息,这种布局使得物控员和生产人员能够非常方便地识别每个子件及其对应的替代料。便于人工查找:在进行手工核对时,这种结构简化了查找替代料的过程,提高了工作效率。

缺点:这种二维结构在实际应用中也存在显著的局限性,尤其是在计算子件齐套或欠料时:无法快速索引:由于表格结构的原因,难以快速查询和判断哪些替代料可用,增加了手动核对的工作量和出错风险。缺乏自动化支持:现有的结构不支持自动化的替代料选择和齐套分析,导致在处理大规模数据时效率低下。

告别手工算料:动态数组打造智能BOM替代分析 - 1

转换格式

二维BOM结构转换为标准一维格式的过程较为复杂,涉及Excel中的动态数组函数、多层函数嵌套以及名称定义等高级功能。为便于理解和操作,本文将分步进行详细讲解。

第一步:转换单一子件的替代料(横向转纵向)

我们以单个子件为例,先完成替代料从“横向排列”到“纵向展开”的转换。

新建一张工作表,并命名为 “BOM一维”,用于存放转换后的数据;

在目标单元格(如 A1)中输入以下公式:=TOCOL(‘BOM ‘!E4:G4),这个公式返回的结果为:{“A03-1″;”A03-2″;”A03-3”},相当于水平转垂直;

告别手工算料:动态数组打造智能BOM替代分析 - 1

第二步:拼接信息(重构数组)

在完成替代料由“横向”转为“纵向”的基础后,接下来需要将相关字段信息——包括父件、子件序号、替代料编码、用量——进行整合,构建一个结构化的二维数组。这一步通过 CHOOSE 函数实现多列数据的动态拼接与数组重构。录入公式:

=CHOOSE({1,2,3,4},’BOM ‘!A4,’BOM ‘!B4,TOCOL(‘BOM ‘!E4:G4),’BOM ‘!D4)

告别手工算料:动态数组打造智能BOM替代分析 - 1

函数解释:

CHOOSE({1,2,3,4}, …):表示构建一个包含 4 列的数组,每一列对应一个参数。{1,2,3,4} 是列索引数组,告诉 Excel 按顺序生成四列数据。

第1列,提取父件编码(如 A),该值为标量,会自动扩展到结果数组的每一行。

第2列,提取子件序号(如 3),同样作为标量广播至所有行。

第3列,将原表中 E4:G4 的横向替代料(如 A03-1, A03-2, A03-3)转换为垂直数组,作为“子件编码”列。

第4列,提取用量(如 2),也自动扩展到每一行。

通过 CHOOSE 函数与 TOCOL 的结合,我们实现了:多字段信息的动态拼接;标量与数组的自动扩展(广播机制);替代料明细的结构化重组;

第三步:合并主料(主料+替代料)

在通过 TOCOL 与 CHOOSE 函数完成替代料的纵向展开与字段拼接后,当前结果仅包含替代料信息,尚未包含原始主料(即“子件”列中的默认物料,如 A03)。为构建完整的在制品替代关系,必须将主料与所有替代料合并,形成统一的一维明细表。使用 VSTACK 函数,将主料行与已转换的替代料数组进行垂直堆叠,实现主料与替代料的完整合并。 =VSTACK(‘BOM ‘!A4:D4,CHOOSE({1,2,3,4},’BOM ‘!A4,’BOM ‘!B4,TOCOL(‘BOM ‘!E4:G4),’BOM ‘!D4))

告别手工算料:动态数组打造智能BOM替代分析 - 1

函数解释:

将两个或多个数组按垂直方向堆叠,生成一个新的联合数组。第一部分,代表主料行数据,第二部分,即第二步中生成的替代料数组,包含所有替代料(如 A03-1, A03-2, A03-3)及其对应字段。

通过 VSTACK 函数,我们实现了:

主料与替代料的完整合并,确保BOM数据无遗漏;

构建了标准的一维明细结构,为添加“优先级”、“替代组”等字段打下基础;为后续自动化判断(如齐套分析、替代可用性评估)提供了可靠的数据源。

未完待续……

相关新闻

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

立即咨询 企业版试用 上门服务

请您留言

感谢您的关注,你可留下联系方式,我们将第一时间与您联系。