4. BOM数据质量问题:常见脏数据类型

做BOM这么多年,我见过最头疼的,不是物料有多复杂,而是数据本身就不干净。

你想想看,一个BOM里混着各种奇奇怪怪的数据——有的字段是空的,有的物料号重复了,有的规格写成了乱码,还有的格式五花八门。这种数据,你拿去做ERP导入、做成本核算、做生产排程,不出问题才怪。

我个人习惯,拿到一份BOM后,第一件事不是看内容,而是先做数据质量检查。说白了,就是先「排雷」。

常见的脏数据,我归纳为四大类:缺失值、重复值、异常值、格式不一致。下面我一个一个说。

核心观点:脏数据不清理,后续所有分析都是垃圾进、垃圾出。BOM清洗的第一步,就是识别这四类问题。

4.1 缺失值——空着不填,后患无穷

缺失值是最常见的问题。物料描述为空、供应商字段为空、封装类型为空……这些空位,在后续处理中会直接导致匹配失败、计算中断。

我在项目中遇到过,一个PCB的BOM里,有30%的物料「规格型号」字段是空的。采购部门拿着这份BOM去询价,结果一半物料找不到对应型号,工期延误了两周。

缺失值一般分三种情况:

  • 完全缺失:整行数据都是空的。这种直接删除或标记为无效。
  • 部分缺失:关键字段为空(如物料号、描述)。需要人工补填或从其他系统同步。
  • 隐含缺失:看起来有值,但其实是占位符,比如填了「N/A」、「-」、「0」。这种最坑人,容易被忽略。

我的小技巧:用Excel或Python做缺失值统计时,不光要数空单元格,还要把「N/A」、「None」、「-」这些也当成缺失处理。我一般会写个自定义函数,把这些「伪值」一并揪出来。

4.2 重复值——同一个物料,出现多次

重复值,说白了就是BOM里同一个物料出现了两遍甚至更多遍。原因很多:有人手误多输了一行,有人从不同系统导数据时没去重,还有人把同一个物料改了名字又加进来。

重复值带来的问题很直接:

  • 物料数量被重复计算,采购量虚高
  • 成本核算翻倍,预算失真
  • 生产时同一个物料被领两次,库存混乱

我记得有一次,一个同事把一颗电阻在BOM里录了三次,每次数量都是1000颗。结果采购下了3000颗的订单,仓库堆了一堆用不完的电阻。嗯,后来我们专门加了个去重校验规则。

判断重复值,不能只看物料号是否一样。有时候物料号不同,但其实是同一个物料(比如不同供应商的同一规格)。这时候需要结合物料描述、规格参数一起比对。

注意:去重之前,一定要先确认是不是「真重复」。有些BOM里同一个物料出现在不同层级,那是正常的结构复用,不是脏数据。别一刀切删错了。

4.3 异常值——数据看起来就不对劲

异常值,就是那些明显不合理的数据。比如物料数量是负数、单价是0、日期写成了2099年、物料号里出现了汉字……

为什么会这样?

  • 人工录入时手误(比如把100输成了1000)
  • 系统间数据转换时编码错误
  • 旧系统遗留的无效数据

我曾经处理过一份BOM,里面有个物料的「用量」字段填的是-5。你想想,生产一个产品怎么可能用掉-5颗物料?这明显是录入时符号搞反了。后来一查,是操作员把「5」前面加了个减号。

异常值的检测,我一般用两种方法:

  1. 规则校验:设定每个字段的合理范围。比如数量必须大于0,日期必须在合理年份内,物料号必须符合编码规则。
  2. 统计方法:用箱线图或标准差法,找出偏离正常分布太多的值。比如所有物料用量都在1-10之间,突然冒出来一个100,那大概率是异常。

避坑指南:我曾经遇到一个案例,异常值其实是「特殊工艺要求」导致的——某个物料在特定工序下用量确实很大。所以,异常值不一定是错误,需要人工复核确认。

4.4 格式不一致——同一个东西,写法千奇百怪

格式不一致,是BOM数据里最磨人的问题。同一个物料,有人写「电阻 10KΩ 0603」,有人写「10K 0603 电阻」,还有人写「R-10K-0603」。你看着都认识,但机器不认。

常见的格式不一致包括:

  • 单位不统一:有的用mm,有的用cm,有的用inch
  • 大小写混用:「RES」和「res」被当成两个不同的东西
  • 分隔符不同:有人用逗号,有人用空格,有人用横杠
  • 缩写不规范:「电容」写成「CAP」、「C」、「电容」都有

我建议,在做BOM清洗时,先制定一个字段格式规范。比如:

字段 规范格式 示例
物料描述 类型+规格+封装 电阻 10KΩ 0603
单位 统一使用国际单位 mm, Ω, μF
物料号 大写字母+数字 RES-10K-0603
日期 YYYY-MM-DD 2024-01-15

然后写个清洗脚本,把不符合规范的数据批量转换。说白了,就是让所有数据「说同一种语言」。

我的经验:格式不一致的问题,最好在BOM导入阶段就解决。我一般会在ERP系统里设置字段校验规则,比如物料描述必须包含「类型+规格+封装」三段,缺一段就报错。这样从源头卡住,后面省很多事。

知识体系总览

下面这张图,把这四种脏数据类型的关系和清洗思路串起来了。你可以对照着看,心里有个全局框架。

BOM脏数据类型 缺失值 重复值 异常值 格式不一致 清洗与标准化 空值 / N/A / 占位符 完全重复 / 部分重复 范围异常 / 逻辑错误 单位 / 大小写 / 分隔符 → 输出标准化BOM数据

这四种脏数据,在实际BOM里往往是同时出现的。一个物料可能既缺失描述,又格式不对,还是重复录入的。所以清洗的时候,我建议按顺序来:先处理缺失值,再去重,然后检查异常值,最后统一格式。一步步来,别急。

好了,这一章的内容就这些。记住一句话:BOM数据质量,决定了你的生产质量。 脏数据不除,后面全是坑。


公众号:蓝海资料掘金营,微信deep3321