如果身份证号写在A1中,则公式可以写成:
=DATEDIF(TEXT(IF(LEN(A1)=15,19&MID(A1,7,6),MID(A1,7,8)),"0-00-00"),TODAY(),"Y")
首先要确认的是身份证号的位数,15位的身份证号生日是第7位开始的6位(年份码两位,完整年份应在前面加上“19”),而18位的身份证号生日是第7位开始的8位(年份码四位),所以公式里会有IF(LEN(A1)=15,19&MID(A1,7,6),MID(A1,7,8))这样的一段来取出具体生日。
其次就是对取出的生日进行“格式化”,也就是转换成EXCEL能识别的日期格式,所以用到了TEXT(……,"0-00-00")。
最后就是计算了,这里的TODAY()是指取得今天日期的意思,然后是用到了EXCEL中的隐藏函数DATEDIF,其作用是将函数里两个日期相减,按指定的方式输出结果,这个公式的DATEDIF(……,TODAY(),"Y")中,第一个逗号前是前面说到取出的生日,逗号后是TODAY今天的日期,再后面的"Y"代表的是要得出年份。
这里值得一提的是,DATEDIF函数在使用时,两个日期的输入需要按照“先小后大”的顺序,否则函数会报错的。