Excel 数据清洗实操:身份证、手机号、房号三种脏数据一次搞定

网格员报上来的居民信息表,身份证位数不统一、手机号带空格短横线、房号写法五花八门。这篇讲清怎么批量规范化,并自动补出年龄性别等信息。

2026-09-15 19 次阅读 Excel,数据清洗,居民信息

脏数据为什么这么多

基层居民信息表的来源通常是:网格员手工录入、旧的系统导出、纸质表格再录入、微信里发来的表格再复制。每一种来源都会带来特定的错误。

常见的三类:

身份证号

  • 15 位老号与 18 位新号混在一起
  • 号码前面或后面多了空格
  • 校验位算错(录入手误)
  • 单元格被 Excel 当成数字,末位变成 000 或者显示成科学计数法

手机号

  • 中间有空格、短横线、括号:138 0000 0000138-0000-0000
  • 前面带 +86860
  • 位数不对

房号

  • 3-2-5013栋2单元5013号楼2单元501室3-2-5-0-1
  • 有的带社区前缀,有的不带

清洗前的准备:身份证列必须先当文本处理

这是最容易踩的坑。 如果身份证号被 Excel 存成数字类型,超过 15 位后 Excel 会用科学计数法显示,末位精度还会丢失——你的数据在打开表格的那一刻就已经损坏了。

正确做法:

  1. 录入或粘贴身份证号前,先把该列格式设为“文本”
  2. 如果已经损坏(末位变成 0),只能从原始来源重新导入
  3. 从软件导出的清洗结果,身份证列已经是文本格式,不会再被 Excel 破坏

第一步:清洗身份证号

用「数据清洗」的身份证清洗器,它会做四件事:

  1. 去空格与全角字符
  2. 15 位统一升为 18 位(按国家标准换算规则)
  3. 校验位验证——按 ISO 7064 算法算一遍,算不对的挑出来
  4. 格式统一(大写 X、无分隔符)

校验通过后,勾选「自动派生」可以得到:

派生字段依据
出生日期第 7-14 位
性别第 17 位(奇男偶女)
年龄出生日期与当前日期计算
出生地前 6 位行政区划码
关于出生地的准确性:行政区划码会随区划调整而变化,历史号码对应的可能是旧区划。用于正式上报时建议人工核对。

第二步:清洗手机号

勾选手机号清洗器,处理逻辑:

  • 去掉所有空格、短横线、括号
  • 去掉 +86 / 86 / 前缀 0
  • 校验号段是否合法(是否为有效运营商号段)
  • 位数校验(应为 11 位)

第三步:清洗房号

房号的“标准写法”取决于你的上报要求。常见的两种规范:

  • 分段式3-2-501(楼栋-单元-房号)
  • 描述式3号楼2单元501室

选定一种后,把其他写法统一过来。注意保留原始写法作为备注列,方便核对。

输出结果怎么看

清洗完成后得到两个 Sheet:

干净数据表:清洗通过的全部记录,直接可用于上报。

问题数据表:没通过校验的记录,每条都标明问题类型(身份证校验失败 / 手机号位数不对 / 房号无法识别)。这张表的价值在于——你可以直接把它发给对应网格员要求重报,不用自己在一千行里逐条找错。

一条实用建议

清洗前先做一次去重检查。同一个居民在多个表格里出现、同一个身份证号录入了两次,都会让后续统计数字虚高。用「提取唯一值」或「按列去重」,按身份证号去重。

常见问题

15 位升 18 位会自动加校验位吗? 会,按国家标准换算规则计算并补齐。

派生的年龄准吗? 按出生日期与运行当天计算周岁,是准确的。但如果身份证上的出生日期本身录错了,派生结果也跟着错——这也是为什么校验位验证很重要。

清洗会改动原文件吗? 不会。原文件保持不动,清洗结果输出为新文件。