2. 多批次配方实验数据合并与去重

多批次数据合并的核心问题

多个批次分别记录配方实验数据时,常见情况是:每个批次一张工作表或一个独立文件,字段结构大体相同,但记录顺序不同,且同一配方可能在不同批次中被重复录入。合并的目标不是简单堆叠,而是形成一张以“配方编号 + 实验日期”为唯一键的实验记录总表,并识别、去除重复记录。

本例使用以下教学示例数据(假设值,用于演示方法):

批次表配方编号实验日期温度/℃主料A/kg助剂B/kg收率/%
批次1F-1012024-03-058012.00.5092.1
批次1F-1022024-03-068510.50.4090.3
批次2F-1022024-03-068510.50.4090.3
批次2F-1032024-03-087811.20.4591.0
批次3F-1012024-03-058012.00.5092.1
批次3F-1042024-03-09829.80.3589.6

其中 F-102/2024-03-06 在批次1与批次2中重复,F-101/2024-03-05 在批次1与批次3中重复。合并后应保留 4 条唯一记录。

批次1 工作表 F-101 | 03-05 | 92.1 F-102 | 03-06 | 90.3 F-103 | 03-08 | 91.0 F-104 | 03-09 | 89.6 字段:配方编号/日期/温度/主料/助剂/收率 批次2 工作表 F-102 | 03-06 | 90.3 F-103 | 03-08 | 91.0 F-105 | 03-10 | 88.4 字段结构相同,记录顺序不同 批次3 工作表 F-101 | 03-05 | 92.1 F-104 | 03-09 | 89.6 F-106 | 03-11 | 87.9 含与批次1重复的 F-101 记录 合并中间表 共 10 条记录 含 2 组重复键 键:配方编号+日期 重复:F-101/03-05、F-102/03-06 按唯一键去重 唯一实验记录总表 F-101 | 03-05 | 92.1 F-102 | 03-06 | 90.3 F-103 | 03-08 | 91.0 F-104 | 03-09 | 89.6 F-105 | 03-10 | 88.4 F-106 | 03-11 | 87.9 共 6 条唯一记录 去重判断逻辑 1. 拼接键 = 配方编号 & "|" & 实验日期(统一日期格式为 yyyy-mm-dd) 2. 用 COUNTIF 统计键出现次数,>1 即为重复 3. 保留首次出现记录,删除后续重复行 4. 校验:总表行数 = 唯一键数量,且无重复键

合并前的字段对齐

合并前先确认各批次表的列名与顺序一致。若列名有差异(如“主料A/kg”与“主料A(kg)”),先统一列名再合并,否则会出现错列。日期列必须统一为同一格式,建议统一为 yyyy-mm-dd,避免“2024/3/5”与“2024-03-05”被当作不同键。

合并方式有两种:

  • 手工复制:适合批次少、数据量小的情况,将各表数据依次粘贴到总表下方,并增加“来源批次”列便于追溯。
  • Power Query 追加:适合批次多、需反复更新的情况。将各批次表作为查询追加后加载到工作表,后续新增批次只需刷新。

用公式识别重复记录

在合并中间表中增加辅助列,用拼接键判断重复。假设合并表数据从第2行开始,A列为配方编号,B列为实验日期,在F2输入:

=A2&"|"&TEXT(B2,"yyyy-mm-dd")

在G2统计该键出现次数:

=COUNTIF($F$2:$F$11,F2)

G列大于1的行即为重复记录。若要标记“保留首次、其余删除”,在H2输入:

=IF(COUNTIF($F$2:F2,F2)=1,"保留","重复")

该公式利用扩展区域 $F$2:F2 逐行扩大统计范围,第一次出现的键计为1,后续相同键计为2及以上,从而精确标记重复行。

去重与结果校验

筛选H列为“重复”的行并删除,剩余即为唯一记录。删除后需做三项校验:

  1. 行数校验:总表行数应等于唯一键数量。本例合并中间表10条,去重后6条。
  2. 键唯一性校验:对拼接键列再次使用 COUNTIF,最大值应为1。
  3. 数值一致性校验:对重复键对应的数值列(温度、主料、助剂、收率)做比对,若同一键下数值不一致,说明不是简单重复而是记录冲突,需人工确认保留哪条,不能直接删除。
同一“配方编号+实验日期”下若数值不同,属于冲突记录而非重复记录。直接去重会丢失信息,应先标记冲突并回溯原始批次表确认。

可复用的合并去重检查清单

检查项判断标准不通过时的处理
列名一致性各批次表列名完全相同统一列名后再合并
日期格式全部为 yyyy-mm-dd用 TEXT 或分列统一格式
拼接键配方编号|日期 无空值补全缺失的编号或日期
重复标记COUNTIF 结果仅1或2检查是否有格式差异导致误判
冲突识别同键数值列一致标记冲突行,人工确认
最终行数等于唯一键数量重新核对删除范围

完成上述步骤后,得到的唯一实验记录总表可直接作为后续组分归一化校验、配方版本关联查询等分析的输入底表。