WPS表格身份证号提取出生日期, 如何用公式提取身份证出生日期, MID函数在WPS中的用法, DATE函数转换格式出错怎么办, 批量提取出生日期最佳方法, 身份证号长度不一致如何处理, WPS表格函数性能优化技巧, 出生日期提取结果格式设置
公式教程

WPS表格如何用公式自动提取身份证中的出生日期?

WPS官方团队2026/4/8

功能定位:为什么非要用公式

在人事、财务、教务场景中,批量导入员工或学生信息时,出生日期往往只写在18位身份证号里。手动复制不仅低效,还容易把“1990”敲成“1980”。用WPS表格公式自动提取,可以随源数据刷新而实时更新,比“分列+查找替换”更轻,也比VBA宏更易维护,这是身份证提取出生日期最省心的做法。

功能定位:为什么非要用公式
功能定位:为什么非要用公式

版本与兼容性边界

截至当前的最新版本(Windows 12.2.0.10327、macOS 12.2.0、Android 12.2.1、HarmonyOS NEXT 12.2.0)均支持下列函数;Linux 版因字体渲染差异,显示结果相同,但日期格式需手动把单元格设为“yyyy-mm-dd”。

若文件需被 Microsoft Excel 2003 打开,请避免使用 TEXTJOIN、LET 等新函数,本文方案全部使用 2003 即存在的 MID、TEXT、DATE,可向下兼容。

核心思路:18 位与 15 位身份证差异

18 位:第 7–14 位是出生年月日,如 19900315。

15 位:第 7–12 位是出生年月日,缺年份前两位,需手动补“19”。

公式必须先用 LEN 判断长度,再决定截取位置与补位策略,否则 15 位证会返回错误。

一步到位的通用公式

假设 A2 存放身份证号码,B2 输入:

=IF(LEN(A2)=18,
    DATE(MID(A2,7,4),MID(A2,11,2),MID(A2,13,2)),
    IF(LEN(A2)=15,
        DATE(VALUE("19"&MID(A2,7,2)),MID(A2,9,2),MID(A2,11,2)),
        ""))

回车后,把 B2 单元格格式改为“日期”→“2012-03-14”样式,即可得到真正的日期值,而非文本。

公式拆解:为什么这样写

1. MID 截取

MID(文本,开始位,长度) 返回文本,需要 DATE 函数把数字串转成日期序列值。

2. DATE 组装

DATE(年,月,日) 会把三个数字合成 WPS 内部日期序号,后续可参与加减、筛选、透视表分组。

3. 15 位补“19”

用 VALUE("19"&MID()) 把文本“190303”变成数字 1903,避免 DATE 把文本当零处理。

平台差异:桌面与移动端输入技巧

Windows/macOS:在编辑栏直接粘贴公式后,按 Ctrl+Enter 批量填充。

Android/iOS:点击单元格→“fx”→选择 IF 函数,再嵌套 MID;小屏输入长公式易断行,可先在备忘录写完一整行,再粘贴到 WPS 移动版。

HarmonyOS NEXT:支持外接键盘,Shift+Enter 换行,公式体验与桌面端一致。

常见问题与回退方案

1. 出现 1900/01/04

原因:MID 结果仍是文本,DATE 把“0000”当年份。解决:确保 MID 外层用 VALUE 或在 DATE 内直接运算。

2. 15 位证返回 2025/03/15

原因:未补“19”,直接把“03”当 2003。解决:按本文公式补“19”。

3. 打开 CSV 源数据后公式失效

原因:身份证被 Excel 当作科学计数法,末四位变 0000。解决:导入 CSV 时把该列设为“文本”,再重新输入公式。

批量填充与动态数组提速

在 WPS 表格 2026 春季版,选中 B2:B20000,输入上述公式后按 Ctrl+Enter,可在数十秒内完成全列计算(经验性观察:十代 i7+16 GB 环境)。

若源数据会继续追加,可把 A:A 区域转为“表格”(Ctrl+T),公式自动下扩,无需手动拖拽。

何时不该用公式

合规提示

若贵单位需对身份证全号加密存储,建议先用“数据→删除列”把身份证列移除,再分发文件。公式列保留出生日期即可,降低泄露风险。

当数据量超过 50 万行,公式重算会明显拖慢文件,可考虑:

何时不该用公式
何时不该用公式
  • 用“数据→分列”把身份证拆成出生年月日三列,再复制为值;
  • 或用 WPS 灵犀数据插件的“Python 沙盒”,在服务器端一次性跑 Pandas 生成结果后回写,减少端侧计算。

可复现验证:如何确认结果正确

  1. 随机抽 10 条,人工比对身份证肉眼可见的出生段与公式结果。
  2. 用透视表对“出生日期”列按年分组,看是否有 1800 或 2020 之后的不合理年份。
  3. 筛选 LEN(A2)=15 的行,检查是否全部补“19”且月份≤12、日期≤31。

若出现异常,回退方案:复制公式列→右键“选择性粘贴→数值”,再用“数据→删除重复项”去重,手动修正少量错误即可。

与第三方系统对接注意点

导出到人事系统时,常要求“yyyyMMdd”文本格式。可在公式外再包一层 TEXT:

=TEXT(IF(LEN(A2)=18,…),"yyyymmdd")

这样即使对方系统把日期当文本读,也不会因区域设置不同变成“03/15/1990”。

最佳实践清单(可直接打印)

步骤 检查点 工具/快捷键
1. 导入前 身份证列设为“文本” 数据→自文本→列数据格式选文本
2. 建公式 通用公式已区分 15/18 位 Ctrl+Enter 批量填充
3. 验证 透视表按年分组,查异常年份 插入→透视表→拖拽“出生日期”到行
4. 分发 删除身份证原列,仅留出生日期 右键→隐藏列或数据→删除列

FAQ:身份证提取出生日期

Q1:公式返回一串数字而不是日期?

把单元格格式改为“日期”即可,WPS 默认序列值从 1900-01-01 起算。

Q2:打开文件后公式变成文本?

可能以“文本格式”存储,选中列→数据→分列→完成,强制重新计算。

Q3:Mac 版找不到“fx”按钮?

顶部菜单→插入→函数,或快捷键 Shift+F3。

Q4:能否一次性提取性别/年龄?

可以,用 MID 取第 17 位奇偶判断性别,用 DATEDIF 算年龄,但需另外建列。

Q5:文件要发给外部审计,如何脱敏?

复制公式列→右键“选择性粘贴→数值”,再删除身份证原列,最后另存为新文件。

总结与下一步行动

用 WPS 表格公式提取身份证出生日期,只需记住“判长度→截串→DATE 组装”三步,即可在 Windows、macOS、Linux、移动端全平台复现。若数据量极大或合规要求严苛,记得把公式结果固化成值,再删除敏感原列。现在就打开你的表格,把 A 列身份证复制进去,用本文公式跑一遍,十分钟后即可得到干净、可参与透视的出生日期列。

📺 相关视频教程

Excel身份证号码提取身份证号和生肖

公式自动化数据提取函数效率优化

相关文章