4. ABC分类数据准备
ABC分类的准确性直接决定库位优化的效果。数据准备阶段的核心任务是从企业信息系统中提取原始业务数据,经过清洗、筛选、聚合与排序,最终形成可供分类算法使用的“SKU-价值”数据集。本节将详细拆解这一过程的四个关键步骤。
4.1 数据采集来源:WMS与ERP的协同
ABC分类所需的基础数据通常分散在企业的两个核心系统中:
| 系统 | 核心数据 | 在ABC分类中的作用 |
|---|---|---|
| WMS(仓储管理系统) | SKU主数据、库存数量、库位信息、出入库流水 | 提供SKU的物理属性与作业频率(出库量) |
| ERP(企业资源计划系统) | 采购订单、销售订单、成本信息、单价 | 提供SKU的财务属性(金额、成本、利润) |
实践建议:优先从WMS获取出库量数据,从ERP获取单价或成本数据。若两系统数据不一致(如SKU编码不同),需以ERP中的SKU主数据为基准进行映射。
4.2 数据清洗与预处理
原始数据通常包含噪声,必须经过清洗才能用于分析。主要清洗步骤包括:
- 处理缺失值:删除或填充出库量、金额为空的SKU记录。
- 剔除异常值:过滤出库量为负数、金额为0或明显超出正常范围的记录(如单日出库量超过库存总量)。
- 去重:合并因系统错误产生的重复SKU记录。
- 时间窗口统一:确保所有SKU的数据覆盖同一时间段(如最近12个月),避免季节性偏差。
- 格式标准化:统一SKU编码大小写、单位(如“件”与“个”)、货币单位。
常见陷阱:不要直接使用ERP中的“销售金额”替代“出库金额”。销售金额可能包含未发货订单,而出库金额才是实际从仓库移动的货值。建议使用WMS的出库数量 × ERP的加权平均单价来计算金额。
4.3 字段选择:核心三要素
ABC分类仅需三个核心字段,过多字段反而会引入噪声:
- SKU(库存单位):唯一标识,用于分组与聚合。
- 出库量(Quantity):在选定时间窗口内的总出库数量,反映作业频率。
- 金额(Amount):出库量 × 单位成本(或单价),反映资金占用与价值贡献。
以下是一个经过清洗后的示例数据集结构:
| SKU | 出库量(件) | 单位成本(元) | 金额(元) |
|---|---|---|---|
| SKU-001 | 12,500 | 8.50 | 106,250 |
| SKU-002 | 8,200 | 15.00 | 123,000 |
| SKU-003 | 450 | 320.00 | 144,000 |
4.4 数据聚合与排序
清洗后的明细数据需要按SKU聚合,并按金额降序排列,为ABC分类计算累计占比做准备。聚合与排序的SQL逻辑如下:
-- 数据聚合与排序示例(SQL)
SELECT
sku,
SUM(out_qty) AS total_qty,
ROUND(SUM(out_qty * unit_cost), 2) AS total_amount
FROM
warehouse_transactions
WHERE
transaction_date BETWEEN '2024-01-01' AND '2024-12-31'
AND out_qty > 0
AND unit_cost > 0
GROUP BY
sku
ORDER BY
total_amount DESC;
排序后的数据集将作为下一节“ABC分类计算”的输入。以下SVG图展示了从数据采集到排序完成的完整流程:
关键产出物:经过上述步骤,你将获得一个包含SKU、出库量、金额三列,并按金额降序排列的干净数据集。该数据集是后续ABC分类计算(第5章)的唯一输入,其质量直接决定分类结果的可靠性。