excel中提取身份证出生日期需用mid函数截取第7-14位(18位)或第7-12位(15位),再用text或date函数格式化为“yyyy-mm-dd”或可计算日期,注意文本格式与长度判断。

如果您在Excel中处理身份证号码,需要从中准确提取出生日期,但发现公式返回错误结果或格式不符合要求,则可能是由于身份证号长度判断、函数嵌套逻辑或区域设置不匹配所致。以下是实现该功能的具体方法:
一、使用MID函数提取并组合日期
MID函数可从身份证号固定位置截取年、月、日字段,再通过连接符拼接为标准日期格式。此方法适用于18位身份证号,且不依赖系统区域设置。
1、确认身份证号位于A2单元格,且为18位纯数字文本(非数值型,避免末尾0丢失)。
2、在目标单元格输入以下公式:
=MID(A2,7,4)"-"&MID(A2,11,2)"-"&MID(A2,13,2)
3、按Enter键确认,结果将显示为“1990-05-12”类文本型日期。
4、如需转换为真正可计算的日期值,外层嵌套DATE函数:
=DATE(MID(A2,7,4),MID(A2,11,2),MID(A2,13,2))
二、使用TEXT与MID嵌套生成带格式的日期字符串
TEXT函数可将提取的数字部分直接格式化为指定样式的文本日期,避免手动拼接符号,同时兼容不同显示需求。
1、确保A2中为18位身份证号,且无空格或不可见字符。
2、在目标单元格输入以下公式:
=TEXT(MID(A2,7,8),"0000-00-00")
3、按Enter键确认,公式自动将第7至14位共8个数字解析为“YYYY-MM-DD”格式文本。
4、若需显示为“YYYY年MM月DD日”,则修改格式代码:
=TEXT(MID(A2,7,8),"0000年00月00日")
三、兼容15位与18位身份证号的统一提取方案
当数据源混有旧版15位身份证号时,需先判断长度再动态调整起始位置,否则MID函数会因索引越界返回错误。
1、在目标单元格输入以下公式:
=IF(LEN(A2)=18,TEXT(MID(A2,7,8),"0000-00-00"),TEXT(MID(A2,7,6),"1900-00-00"))
2、公式中LEN(A2)=18用于识别18位证号;15位证号出生日期从第7位起共6位,年份默认补“19”前缀。
3、若15位证号年份可能为2000年后(如2001年出生),需进一步用条件判断年份范围,例如:
=IF(LEN(A2)=18,TEXT(MID(A2,7,8),"0000-00-00"),IF(--MID(A2,7,2)
四、将结果转换为Excel可识别的日期序列值
仅用MID或TEXT生成的文本型日期无法参与日期运算(如DATEDIF、加减天数),必须转为真正的日期数值类型。
1、选中已用MID提取出的“YYYY-MM-DD”文本列(如B列)。
2、在空白列输入公式:
=--SUBSTITUTE(B2,"-","/")
3、双负号“--”强制将文本转为数值,SUBSTITUTE将短横线替换为斜杠以适配Excel默认日期分隔符。
4、复制该公式后,对结果列执行“选择性粘贴→数值”,即可清除公式依赖,保留纯日期值。










