在mac numbers中提取身份证出生年月需用正则替换:18位证用^.{6}(\d{4})(\d{2}).*$→$1$2;混有15位时先补“19”统一为18位,再正则提取,最后转数值并设自定义日期格式“yyyy"年"mm"月”。

在Mac Numbers表格中处理人事数据时,需从18位身份证号码里精准提取出生年月(如“199003”),不能依赖Windows版Excel的DATE或TEXT函数——Numbers不支持这些语法,直接粘贴公式会报错或显示#ERROR。
用正则表达式提取纯数字年月
Numbers原生支持正则替换,这是最稳定、无需辅助列的方法。
选中存放身份证号的列(例如A列),点击顶部菜单栏「编辑」→「查找」→「替换」,勾选「使用正则表达式」。
在「查找」框中输入:^.{6}(\d{4})(\d{2}).*$,这表示跳过前6位地址码,捕获第7–10位年份和第11–12位月份,忽略后续所有字符。
在「替换为」框中输入:$1$2,即把捕获的年份和月份拼成6位数字(如199003)。
点击「全部替换」,结果列将直接生成形如“199003”的纯数字年月。⚠️注意:此方法【仅适用于18位身份证】,若存在15位旧证,需先用另一列清洗长度再操作。
转为可识别的日期格式并显示为“YYYY年MM月”
Numbers无法像Excel那样用DATE函数生成日期序列值,但能识别标准日期字符串。
在B2单元格输入公式:=DATEVALUE(A2&"01"),前提是A2已通过上一步得到“199003”;该公式自动补上“01”变成“19900301”,再转为Numbers可识别的日期值。
选中B2单元格 → 顶部工具栏「格式」→「单元格」→「数据格式」→「日期」→ 点击「自定义格式」→ 在「格式字符串」中输入:yyyy"年"mm"月"。
按回车确认,单元格立即显示为“1990年03月”。这一步不可跳过,否则默认显示为“1990/3/1”或数字序列。
兼容15位与18位身份证的一键提取(推荐)
当原始数据混有15位老身份证(出生日期在第7–12位,格式YYMMDD)时,必须先统一长度再提取。
第一步:新建辅助列C,在C2输入公式:=IF(LEN(A2)=18,A2,CONCATENATE(LEFT(A2,6),"19",MID(A2,7,6)))。该公式判断长度,15位则在年份前补“19”,强制转为18位模拟格式(如“19900307”)。
第二步:对C列执行
用正则表达式提取纯数字年月
中的全部操作,即可批量输出统一格式的6位年月。第三步:将结果列复制→右键「选择性粘贴」→勾选「数值」→确定。这一步【必须做】,否则正则替换结果仍为文本,无法参与后续筛选或排序。











