可使用datedif结合mid提取身份证出生日期计算周岁年龄,如=datedif(date(mid(a2,7,4),mid(a2,11,2),mid(a2,13,2)),today(),"y");也可用year(today())-mid(a2,7,4)得粗略年龄;或用datevalue(text(mid(a2,7,8),"0000-00-00"))构建日期再计算;混合15/18位时需用ifs或if判断长度并补全年份。

如果您在Excel中拥有身份证号码,需要根据其中的出生日期信息自动计算出年龄,则可以通过提取身份证中的年份信息并结合当前日期进行运算。以下是实现此功能的多种方法:
一、使用DATEDIF函数结合MID函数提取年龄
该方法利用MID函数从18位身份证中准确截取第7至第10位的出生年份,并与当前日期对比,通过DATEDIF函数计算整年差值,结果精确到周岁且不四舍五入。
1、在目标单元格中输入公式:=DATEDIF(DATE(MID(A2,7,4),MID(A2,11,2),MID(A2,13,2)),TODAY(),"y"),其中A2为含身份证号码的单元格。
2、按Enter确认,得到A2对应人员的周岁年龄。
3、将公式向下填充至其他身份证数据行,批量生成年龄结果。
二、使用YEAR函数配合DATEVALUE构建出生日期
该方法先用MID提取年月日,再用DATEVALUE将其转换为可计算的日期序列值,最后用YEAR函数获取当前年份减去出生年份,适用于对闰年及未到生日者不做严格周岁判断的场景。
1、在目标单元格中输入公式:=YEAR(TODAY())-MID(A2,7,4)。
2、按Enter确认,获得基于年份差的粗略年龄。
3、注意:该方式未校验月份和日期,若当前日期未到生日,结果会比实际周岁大1,需配合条件判断修正。
三、使用TEXT与DATE组合生成标准出生日期后计算
该方法通过TEXT函数将提取的年月日拼接为“yyyy-mm-dd”格式字符串,再由DATEVALUE转为Excel可识别的日期,确保出生日期解析无误,再用DATEDIF求整年差,兼容性高且逻辑清晰。
1、在目标单元格中输入公式:=DATEDIF(DATEVALUE(TEXT(MID(A2,7,8),"0000-00-00")),TODAY(),"y")。
2、按Enter确认,公式自动识别身份证第7位起共8位(年4+月2+日2)并构造成合法日期。
3、向下填充公式,适用于全部18位身份证数据,对含X的末位校验码无影响。
四、使用IFS函数处理15位与18位身份证混合情况
当数据中同时存在旧版15位身份证(无年份前缀,出生年为两位)和新版18位身份证时,需先判断长度,再分别提取年份并统一转换为4位年,避免15位身份证被误算为1900年代或2000年代。
1、在目标单元格中输入公式:=DATEDIF(DATE(IF(LEN(A2)=18,MID(A2,7,4),19&MID(A2,7,2)),MID(A2,IF(LEN(A2)=18,11,9),2),MID(A2,IF(LEN(A2)=18,13,11),2)),TODAY(),"y")。
2、按Enter确认,公式自动区分身份证位数,15位身份证默认按19XX年处理。
3、确保原始身份证列无空格、不可见字符,否则LEN函数返回异常,导致判断失效。










