WPS表格如何提取出生日期, WPS身份证年龄计算公式, 批量获取出生日期并生成年龄, TEXT函数提取年月日, DATEDIF函数计算年龄, WPS表格年龄列自动生成, 身份证号中提取生日教程, 身份证年龄计算错误排查, WPS人事数据模板设置, WPS表格公式与插件区别
数据管理

WPS表格如何一键批量提取身份证出生日期并生成年龄?

WPS官方团队

痛点:手工拆生日算年龄,HR一天报废一双眼睛

校招季,某连锁餐饮总部HR小黎收到总部发来的2.3万条应聘表,身份证号散落在C列,人事系统却要求“出生日期”与“年龄”两栏非空。手工复制前6位再补“19”显然不现实,更怕把1998写成1989。她的需求一句话:在WPS表格如何一键批量提取身份证出生日期并生成年龄,且后续月份刷新能自动更新年龄,不破坏原表格式,最好还能让门店同事一键复用。

痛点:手工拆生日算年龄,HR一天报废一双眼睛
痛点:手工拆生日算年龄,HR一天报废一双眼睛

功能定位:为什么WPS自带函数就能搞定,还不用VBA

截至当前的最新版本(春季正式版13.9.2.6888),WPS Spreadsheet已原生支持537个函数,其中MIDDATEDATEDIFTODAY的组合即可把18位身份证号拆成“生日”与“周岁”。优势有三:①零插件,文件可拷到无宏电脑继续用;②动态数组,新增行自动向下填充;③与金山云协同时,手机端也能看见实时年龄,不会把25岁错写成26岁。

与“数据→分列”相比的边界

“分列”只能拆出年月日三列,后续还要再拼一次DATE,且不会随时间推移计算年龄;函数模板一次成型,刷新即可。但若原始数据混杂15位老身份证,则需先用LEN判断再补“19”,本文模板已内置该分支。

最短可达路径:Windows/Mac桌面端三步落地

  1. 假设身份证号在C2:C20000,点击D2作为“出生日期”列,输入公式:
    =IF(LEN(C2)=15,DATE(MID(C2,7,2)+1900,MID(C2,9,2),MID(C2,11,2)),DATE(MID(C2,7,4),MID(C2,11,2),MID(C2,13,2)))
  2. 回车后,双击填充柄(小绿点),整列自动向下溢出;若出现#####,把D列格式设为“日期”。
  3. 在E2输入“年龄”公式:
    =DATEDIF(D2,TODAY(),"Y"),同样双击填充。以后每天打开表格,年龄自动+1,无需手动重算。

移动端(Android/iOS)路径差异

手机WPS目前不支持一次性双击填充过万行,可改用“填充→向下填充到相邻区域”按钮;若数据量超5k行,经验性观察:在电脑端完成模板再上传云盘,手机只读浏览更流畅。

提示:若你的表格未来还会追加行,把数据区域先转为“表格”(Ctrl+T),新增行时公式自动下溢,无需再双击填充。

模板下载:一键替换,零公式可见

WPS官方模板库已上架“身份证生日年龄计算表”,搜索关键词“身份证”即可。模板把公式封装在“出生日期”“年龄”两列,用户只需把自己的身份证号粘到A列,结果秒出。若企业内网无法访问外网模板,可复制本文上述两段公式自建,保存为“.ett”格式即可分发给门店。

例外与副作用:15位证、边缘生日、闰年踩坑

1. 15位身份证

公式已用LEN判断,默认把年份+1900;若遇到1900年前出生的极特殊情况,需人工核实,公式会返回1900/1/1作为异常标记,方便筛选。

2. 2月29日闰年

DATE函数在WPS内会自适应,例如输入2021/2/29会自动变成2021/3/1,导致年龄少1天。经验性观察:对HR场景无影响,若用于保险精算,请用EDATE逐月比对。

3. 空白或错误长度

当C列出现17位或19位等异常长度,公式返回#VALUE!,可在外层再包IFERROR
=IFERROR(原公式,"证件号异常"),方便后续筛选补录。

警告:WPS的DATEDIF第三参数必须大写“Y”,小写“y”会返回乱码;该行为与Excel一致,但初学者易忽视。

验证与回退:如何确认结果没串行

  1. 随机抽样:在D列用Ctrl+\定位差异,把公式列复制为数值后,与身份证肉眼比对10条。
  2. 年龄抽查:找一位当天生日员工,若其身份证显示“2000/3/8”,则年龄应为26,表格中如显示25,说明TODAY()未重算,按F9手动刷新即可。
  3. 回退方案:若误操作把身份证号列覆盖,可立刻用Ctrl+Z;若已保存并关闭,可登录金山云→版本历史→回滚到上一版本。
验证与回退:如何确认结果没串行
验证与回退:如何确认结果没串行

性能实测:2万行是否卡顿?

在16GB内存+第12代i5笔记本上,WPS 13.9.2打开2万行、两列公式,冷启动时间约亚秒级;全表重算耗时数十秒内,CPU峰值可见提升,但风扇噪音可接受。若电脑内存低于8GB,建议把公式列复制为数值后另存副本,减少再次打开时的重算压力。

协作场景:总部模板下发,门店只读

总部把模板上传到“协作空间”,权限设为“仅查看+可下载”,门店HR无法意外删除公式;若门店需追加本地候选人,可副本再填,不会反向污染母表。通过“区域权限”可把身份证号列设为“仅指定人可见”,避免年龄列暴露隐私。

何时不该用函数模板?

  • 数据源为每日追加的CSV,且要求零人工:可用Power Query替代,自动追加行。
  • 需按“周岁/虚岁/月龄”多口径同时输出:建议写三列标题,分别用DATEDIF不同参数,但表头需醒目提示,避免门店误采。
  • 合规要求“计算过程不可见”:函数可被点击查看,若审计要求黑箱,应改用WPS Script(JavaScript宏)并把源码加密。

最佳实践清单(可打印贴屏)

步骤 检查点 常见失误
1. 粘身份证 文本格式,禁止科学计数 3.7102E+17
2. 设公式 15/18位分支 漏+1900
3. 转表格 Ctrl+T自动扩展 忘记给表起名
4. 锁区域 身份证号列“仅自己可编辑” 整表锁定导致公式失效

FAQ:身份证提取常见5问

Q1:为何复制到另一电脑后年龄全变成“0”?

目标电脑把公式计算选项设为“手动”,按F9或“公式→计算选项→自动”即可恢复。

Q2:Mac版找不到“填充柄”?

Mac触控板默认“拖移”被系统占用,需在“系统设置→辅助功能→指针控制”中启用“三指拖移”,再回WPS即可拖动填充。

Q3:能否直接得出“星座”?

在F2用=LOOKUP(--TEXT(D2,"mdd"),{101,"摩羯";120,"水瓶";219,"双鱼";321,"白羊";420,"金牛";521,"双子";621,"巨蟹";723,"狮子";823,"处女";923,"天秤";1023,"天蝎";1122,"射手";1222,"摩羯"})即可,但星座为娱乐属性,正式报表慎用。

Q4:批量替换身份证最后四位为“****”怎么做?

在旁边列用=REPLACE(C2,LEN(C2)-3,4,"****"),再复制为数值,原列隐藏即可。

Q5:打开文件时提示“外部链接”?

原因是复制公式时把TODAY()误选成另一文件的[1]TODAY(),在“数据→编辑链接”里断开即可。

总结与下一步

WPS表格通过原生函数即可完成“一键批量提取身份证出生日期并生成年龄”,无需插件、零成本、跨平台兼容。核心记住三点:15/18位分支、DATE+DATEDIF组合、表格化自动扩展。下一步,你可以:

  • 把模板保存为“.ett”上传金山云,供全集团复用;
  • 用“数据→切片器”快速按年龄段筛选候选人;
  • 若数据超过10万行,考虑WPS Script或Power Query,避免一次性全表重算。

按本文步骤操作,10分钟就能让2万条身份证秒变出生日期与年龄,且后续月份零维护。把省下的时间拿去面试,而不是敲键盘。

📺 相关视频教程

Excel电子表格——如何做到身份证自动识别男女 好看视频

批量提取函数年龄计算身份证模板

相关推荐