2. 数据准备:采购订单数据、供应商主数据、价格清单数据的获取与清洗

供应商支出集中度分析与价格方差异常定位的准确性,高度依赖底层数据的质量。本章将系统讲解三类核心数据源的获取范围、字段标准与清洗规则,确保后续分析建立在干净、一致、可追溯的数据基础之上。

2.1 三类数据源的定义与获取范围

数据源 核心用途 关键字段 获取周期
采购订单数据 支出金额、采购量、单价、交易时间 PO编号、供应商编码、物料编码、订单数量、单价、总金额、订单日期、收货日期 近3个完整财年 + 当前财年至今
供应商主数据 供应商分类、风险等级、合作状态 供应商编码、名称、所属集团、行业分类、注册地、信用等级、是否活跃 最新快照 + 历史变更记录
价格清单数据 标准参考价、合同价、历史成交价 物料编码、供应商编码、生效日期、失效日期、标准单价、合同单价、折扣率 覆盖分析时间窗口的全部版本
数据获取避坑提示: 采购订单数据务必包含已收货和已开票的订单,排除未完成或已取消的订单;供应商主数据需确认“集团级”与“工厂级”编码的映射关系,避免同一集团下不同法人实体被重复计数。

2.2 数据清洗的六大标准步骤

原始数据通常存在缺失、重复、格式不一致、业务逻辑异常等问题。以下清洗流程适用于三类数据源,建议按顺序执行:

  1. 字段完整性检查 — 检查关键字段(如供应商编码、物料编码、单价)是否为空,缺失率超过5%的字段需追溯源系统补录。
  2. 重复记录去重 — 以PO编号+行项目号为唯一键,保留最新时间戳的记录;供应商主数据以供应商编码去重。
  3. 格式标准化 — 统一日期格式为YYYY-MM-DD,金额字段保留两位小数,文本字段去除前后空格与特殊字符。
  4. 业务逻辑校验 — 单价不能为负数或零;订单数量必须为正整数;订单日期不得晚于收货日期。
  5. 异常值截断 — 对单价、数量等连续字段,按99.5%分位数截断极端值,避免个别异常订单扭曲集中度指标。
  6. 关联一致性校验 — 采购订单中的供应商编码必须在供应商主数据中存在;物料编码必须在价格清单中有对应记录。
关键指标: 清洗后的数据应满足:
• 字段完整率 ≥ 98%
• 重复记录率 ≤ 0.5%
• 业务逻辑通过率 ≥ 99%
• 关联匹配率 ≥ 95%

2.3 数据清洗流程架构

下图展示了从原始数据到分析就绪数据的完整清洗链路,包含三个数据源的并行处理与最终合并节点:

数据清洗流程架构图 数据清洗流程架构图 采购订单数据 供应商主数据 价格清单数据 步骤1:字段完整性检查 步骤2:重复记录去重 步骤3:格式标准化 步骤4:业务逻辑校验 步骤5:异常值截断 步骤6:关联一致性校验 → 合并数据集

2.4 价格方差异常的初步识别

在数据清洗完成后,可立即对价格清单与采购订单进行初步比对,标记出价格差异超过阈值的记录,作为后续深度分析的输入:

-- SQL示例:标记价格差异超过10%的采购订单行项目
SELECT 
    po.PO编号,
    po.物料编码,
    po.供应商编码,
    po.单价 AS 订单单价,
    pl.标准单价,
    ROUND((po.单价 - pl.标准单价) / pl.标准单价 * 100, 2) AS 价格差异百分比,
    CASE 
        WHEN ABS((po.单价 - pl.标准单价) / pl.标准单价) > 0.10 THEN '异常'
        ELSE '正常'
    END AS 差异标记
FROM 采购订单清洗表 po
LEFT JOIN 价格清单清洗表 pl 
    ON po.物料编码 = pl.物料编码 
    AND po.供应商编码 = pl.供应商编码
    AND po.订单日期 BETWEEN pl.生效日期 AND pl.失效日期
WHERE po.订单日期 >= '2023-01-01';
注意: 价格差异标记为“异常”并不代表一定存在舞弊或错误,可能是由于批量折扣、紧急采购溢价、汇率波动等合理原因导致。此步骤仅用于定位候选异常,后续章节将结合供应商集中度与支出分布进行综合研判。

2.5 数据准备阶段交付物清单

交付物 内容说明 格式要求
采购订单清洗表 包含完整字段、去重、校验后的订单明细 CSV / Parquet,按月份分区
供应商主数据清洗表 包含集团映射、活跃状态、分类标签 CSV,单文件快照
价格清单清洗表 包含版本有效期、标准价、合同价 CSV,按版本分区
数据质量报告 字段完整率、重复率、异常值统计、关联匹配率 PDF / HTML
价格差异初步标记表 差异百分比、差异标记、候选异常记录 CSV,含差异标记列

完成上述数据准备后,即可进入第3章:供应商支出集中度计算与帕累托分析。