极客豌豆 · 表格整理实用资源

保留原值,再清洗
一份能逐行核对的 Excel 练习

用 9 行小样例练习需求确认、清洗边界与交付验收。版本:2026-10-14 · R2。

全部数据均为虚构练习。不代表真实客户、订单、供给、收入或经营结果。规则仅用于本例;实际资料的规则由资料负责人确认。

下载两页 Excel 练习打开需求空白表

先做这三步

  1. 打开需求空白表,写清每行含义、编号、空值、重复、日期和合计范围。没有答案的字段留待确认。
  2. 打开 Excel 的“虚构原始数据”页,再对照“结果与审计”页。编号按文本保存,原始日期按文本保留,数量保持数值或空白。结果页中已经确认的完整日期保存为日期值;歧义或无效日期仍留待确认。
  3. 核对下方 9 行审计。结果文件是本次运行快照;修改原始页不会自动重做清洗。需要重复处理时使用本包的清洗代码,并重新核对结果。

本包没有宏、外部数据连接或外链公式。Excel 只含小计与数量统计公式;它没有替你决定重复、空值或歧义日期的业务含义。

本例采用哪些明确规则

允许执行

  • 去掉“名称”和“日期文本”的首尾空白。
  • 编号保持原始文本,包括 0012 和 0000。
  • 数量只接受已提供的非负整数;数值 0 有效。
  • 只接受完整且有效的 YYYY-MM-DD 日期,本例支持年份 1900—9999。

保留并等待确认

  • 空数量不补 0,数值型编号不反向猜前导零。
  • 重复键两行都保留,不自动选最新、不合并、不删行。
  • 3/4 不猜年份或月日顺序。
  • 2026-02-30 不顺延成三月日期。
  • 有待确认行时,完整数量合计不计算。

9 行改了什么,哪些仍未解决

来源行需要留意的原值实际处理结果
R01编号 0012;名称有首尾空格;数量 4只去名称首尾空白,编号保留为文本可纳入本例小计
R02数量空白保留空白,不填 0待确认数量含义
R03数量 0保留有效数值 0可纳入本例小计
R04编号 0015;数量 3与 R05 同编号,双方保留待确认重复或不同版本
R05编号 0015;数量 5不覆盖 R04,也不自动相加待确认冲突
R06日期 3/4明确日期栏留空;原文本留在原始页待确认完整日期
R07名称与日期有首尾空格;数量 6仅去空白,校验后得到 2026-10-05可纳入本例小计
R08编号 0000;日期 2026-02-30编号保留;无效日期不顺延待确认正确日期
R09编号空白原行保留,不生成新编号待确认记录键

本次运行:原始 9 行 → 结果 9 行;3 行可纳入示例小计,6 行待确认。

规则明确的三行数量小计为 4 + 0 + 6 = 10 件。这个 10 只描述 R01、R03、R07,不是全部记录的业务总量。完整合计为空并显示“待确认,暂不计算”;不能把重复冲突或缺值默默排除后仍称为“总计”。

打开文件后,先确认原值没有变

R2 修订:本版调整了结果页 7 个明确日期的保存方式,保留原来的日期显示格式。原始数据页、编号、数量、冲突记录、公式和清洗规则不变。

打开工作簿后,先核对编号 0012、0000 是否仍是文本;原始日期 3/4、2026-02-30 是否原样保留;空数量和数值 0 是否仍可区分。结果页的明确日期应按 yyyy-mm-dd 显示。

本机软件验证边界:2026-10-14 在 WPS Office for Mac 12.1.26046 中实际打开 R2 工作簿并另存为 XLSX,另存文件的编号、原始日期文本、明确日期、数量和公式核对通过。本结论仅覆盖本次文件和该软件版本;Microsoft Excel 未做本机实测,不能据此承诺所有版本兼容。

如果另外使用 CSV

本资源包提供 XLSX 与 JSON,不提供 CSV;需求空白表支持导出 JSON 和打印保存。本轮另用虚构 CSV 做的 WPS 默认打开实验中,3/4 和 2026-10-01 被自动解释成日期,原来的文本类型没有保留。

处理自己的 CSV 时,先保留原文件;若导入工具允许指定列类型,应将编号和需要原样保留的日期文本列设为文本,再对照原文逐项检查。不能只因单元格看起来相同就判断内容与类型没有变化。这是操作建议,不代表本轮已经验证了指定文本列的完整导入流程。

如何重复得到同一个结果

原始数据位于 虚构原始数据.json,逐行结果位于 清洗结果与逐行审计.json。两者都明确标注虚构。clean.mjs 中的 clean(rows) 只读取传入数据,不访问网络、不覆盖源文件。

如果本机已有 Node.js,在解压目录执行以下命令,可把本包原始 JSON 重新清洗到终端:

node --input-type=module -e "import fs from 'node:fs'; import {clean} from './clean.mjs'; const input=JSON.parse(fs.readFileSync('虚构原始数据.json','utf8')); console.log(JSON.stringify(clean(input.rows),null,2));"

预期关键结果:input_rows: 9、output_rows: 9、eligible_rows: 3、pending_rows: 6、eligible_quantity_subtotal: 10、full_quantity_total: null。

普通使用者可直接检查 Excel 与逐行审计,无需运行代码。若要处理自己的数据,先另存副本,核对字段和规则,不把本例的“非负整数”或日期范围直接当作所有业务的规则。

交付时核对这六项

  1. 源数据不被覆盖:来源行号齐全,9 行都能追溯,前导零仍在。
  2. 字段调整可解释:哪些去空白、哪些未改,都能按来源行号核对。
  3. 空值与 0 区分:R02 为空,R03 是数值 0,不是一种状态。
  4. 冲突没有被隐藏:R04 和 R05 都保留,R06/R08 的原始日期也保留。
  5. 合计口径清楚:10 是三行子集的小计;全量不能因“能求和”就当作正确。
  6. 待确认有负责人:把问题写入需求表,由资料负责人补充规则后再处理,保留新一轮修改记录。