WPS表格如何用公式提取身份证生日并算出年龄?

功能定位:为什么非得用公式
在人事、教务、电商客服台账里,把18位身份证号批量拆成“生日+年龄”是高频刚需。WPS表格的MID与DATEDIF函数组合,无需插件、不用VBA,就能在桌面端与移动端一次成型,且向下兼容到2019版。相比手工截取或外部工具,公式可随源数据刷新而自动更新,一劳永逸。
核心原理:18位身份证里藏着什么
第7-14位是yyyymmdd生日码;第17位奇男性、偶女性。提取生日只需把这段数字截出来,转成日期序列号,再用今天的日期相减即可得年龄。整个过程纯文本→数值→日期三级跳,WPS内置函数就能完成。
操作路径:桌面端最短步骤
- 假设A2存放身份证号,在B2输入生日公式:
=DATE(MID(A2,7,4),MID(A2,11,2),MID(A2,13,2)) - 在C2输入年龄公式:
=DATEDIF(B2,TODAY(),"Y") - 向下填充即可批量完成。
两步公式写完,选中填充柄双击,整列瞬间完成。若数据后续还会追加,直接把范围拉成“Excel表格”(Ctrl+T),新增行将自动继承公式。
移动端差异:手机小屏如何敲公式
WPS Android/iOS v15.7起支持公式栏滑动编辑。点击单元格→工具栏“fx”→搜索MID→依次输入参数;日期函数键盘在“函数-日期”分类里,其余逻辑与桌面完全一致。因屏幕限制,建议先在PC端建模板,再用“最近文件”接力编辑,避免在小键盘上反复切换。
边界条件:公式何时会翻车
- 非18位证件:15位旧证无世纪码,需手动补“19”。
- 输入带空格或X大小写:先用
TRIM()与UPPER()清洗。 - 1900前出生:WPS日期序列从1900-01-01起算,更早日期会返回负值,需改用“文本+手动备注”方案。
示例:若系统收到“800101”这种15位号码,公式会把它当成2080年出生,导致年龄瞬间“年轻”100岁。先补世纪码再计算,是兼容性最关键的一步。
常见失败分支与回退方案
现象:年龄显示#VALUE!
原因:MID结果不是合法日期,例如身份证号含空格。
验证:选中B2→公式求值,看MID三段是否为数字。
处置:用
=DATEVALUE(TEXT(MID(A2,7,8),"0000-00-00"))强制转换,或清洗源数据后重新计算。
性能与合规:一次性处理十万行会不会卡
经验性观察:在16GB内存+SSD环境下,10万行双公式填充约需数十秒;若打开“自动重算”实时更新,每次改一个身份证号都会触发全表重算,可临时切到“手动重算”以提升响应。合规层面,身份证属敏感个人信息,建议本地计算后立刻删除原始列,或用=LEFT(A2,4)&"****"&RIGHT(A2,4)脱敏。
进阶玩法:让年龄带小数、按周岁/虚岁切换
周岁带两位小数:=ROUND(DATEDIF(B2,TODAY(),"M")/12,2)
虚岁(出生即1岁,过完春节+1):=YEAR(TODAY())-MID(A2,7,4)+1
示例:同一个人,周岁28.75、虚岁30,差异来自计算规则而非公式错误。根据业务场景选择,才能与政策口径对齐。
是否值得?一张决策表帮你判断
| 场景 | 一次性 | 周期性 | 建议方案 |
|---|---|---|---|
| 学生实验 | √ | × | 直接写公式,用完即弃 |
| HR月度报表 | × | √ | 建模板+Power Query自动刷新 |
| 10万行电商订单 | × | √ | 公式+手动重算,或转用数据透视 |
不适用清单:公式不是万能钥匙
- 需要精确到天的保险费率:应调用官方精算接口,日期差一天费率都可能不同。
- 外籍护照、港澳台居民证:号码规则各异,无法通用MID固定位置。
- 需要审计留痕:公式可被无意覆盖,建议计算后复制为数值并加版本号。
最佳实践清单(可打印贴屏)
- 原始身份证列设为“文本”,避免科学计数法。
- 先清洗后计算:TRIM+UPPER+LEN=18校验。
- 计算列与原始列分色填充,防止误删。
- 大数据量→手动重算→完成后再改回自动。
- 输出给第三方前,复制为数值并脱敏。
FAQ:你可能还会问
15位旧身份证怎么算?
先用公式补“19”:=IF(LEN(A2)=15,"19"&A2,A2),再按18位逻辑提取即可。
DATEDIF算出来比实际小1岁?
DATEDIF按周年计算,生日当天才+1;若需“生日当月即算1岁”,可把“M”除以12再四舍五入。
可以一次输出“1988-05-09 (36岁)”这种格式吗?
用连接符即可:=TEXT(B2,"yyyy-mm-dd")&" ("&C2&"岁)"
Mac版函数名不一样吗?
函数名相同,但日期分隔符需用“/”,公式结果会随系统区域设置自动转换。
WPS AI能否直接生成这段公式?
在AI对话框输入“提取身份证生日并计算年龄”,AI 3.0会返回完整公式,但需检查是否带多余引号,直接采用前请用样例验证。
收尾行动:下一步你该做什么
复制本文示例,打开WPS表格→新建空白表→输入一条真实身份证号→按步骤跑通。验证无误后,把公式存进“个人模板”库,下次只需粘贴数据,生日与年龄将自动归位。若数据量过万,记得切手动重算并做脱敏——公式已熟,安全与效率同样重要。
未来版本若推出“身份证智能字段”功能,上述公式或可一键生成,但掌握手动写法仍是兜底技能;提前把模板、脱敏、重算开关做成习惯,才能在任何版本里都游刃有余。
相关关键词
相关文章推荐

怎么在WPS表格中用FILTER一键提取同时满足日期与数值区间的行?
用WPS表格FILTER函数,一键筛出指定日期与数值区间的行,零辅助列,动态自动扩展。

WPS表格如何按固定行数把一列拆成多列?
WPS表格按固定行数拆列:用OFFSET配COLUMN,一键转多列,兼容桌面与Web端。

WPS表格如何按姓名笔画数排序并生成排名?
WPS表格按姓名笔画排序并生成排名:用辅助列+LENB+SORT,跨平台实测可复现。

WPS表格如何设置数据验证限制输入数值范围?
在WPS表格中通过数据验证功能限制输入数值范围,覆盖桌面与移动端操作路径,附跨平台兼容性及故障排查要点。