Excel罕见高招:[3]判断身份证号码真伪②
的有关信息介绍如下:我们知道身份证号码中包含了出生日期,所以可以用检验出生年月日是否合法的方法,来初步验证身份证号码的真伪。
我们知道一代身份证号码是15位,其中第7、8位是年份(2个数字);
二代身份证号码是18位(自2004年3月29日起实行),其中第7、8、9、10位是年份(4个数字);
那么可以直接提取年份数字,判断是否合理。
我们先看如何通过Excel从身份证号码中自动提取出年份。
单元格A2中输入待验证的身份证号码,在单元格C2输入公式
=IF(LEN(A2)>15,MID(A2,7,4),19&MID(A2,7,2))
即可得到出生年份
得到年份,我们可以通过简单判断年份是否介于1900~今年。
今年年份,可以使用Excel公式:YEAR(NOW())
下面是完整公式,验证身份证号码中的年份是否合理
=IF(AND(VALUE(IF(LEN(A2)>15,MID(A2,7,4),19&MID(A2,7,2)))>=1900,VALUE(IF(LEN(A2)>15,MID(A2,7,4),19&MID(A2,7,2)))<=YEAR(NOW())),"真","假")
上面介绍了如何鉴别身份证号码中的年份真假,这里要介绍更严格的检查方法:
如何鉴别身份证号码上的日期,是否真实存在。
例如:
19950229,表示1995年2月29日,根本没有这一天!显然是不合法。
我们使用Excel中一个函数,来检查该日期是否真实。
可以使用这个公式,来检测
=TEXT(IF(LEN(A2)>15,MID(A2,7,4)&-MID(A2,11,2)&-MID(A2,13,2),19&MID(A2,7,2)&-MID(A2,9,2)&-MID(A2,11,2)),"真;;;假")
我们再结合之前判断年份是否合理的方法,完整得出这样判断公式
=IF(AND(VALUE(IF(LEN(A2)>15,MID(A2,7,4),19&MID(A2,7,2)))>=1900,VALUE(IF(LEN(A2)>15,MID(A2,7,4),19&MID(A2,7,2)))<=YEAR(NOW())),TEXT(IF(LEN(A2)>15,MID(A2,7,4)&-MID(A2,11,2)&-MID(A2,13,2),19&MID(A2,7,2)&-MID(A2,9,2)&-MID(A2,11,2)),"真;;;假"),"假")