说明
1.身份证号为随机产生的一个数字,产生的方法为:
(1)前6位数字取自表“身份证前六位”,用RAND函数取行号,再用INDEX取前
(2)第7、8两位取19
(3)第9、10用RAND函数两位取35~99
(4)第11、12位用TEXT+ROUNDUP(RAND())函数取01~12
(5)第13、14位用(4)的方法取01~28,只所以不取29、30、31,只为了不产生日期 (6)第15~18位用同样的方法取0001~9999
注:因最后的校验码为随机产生的数字,所以得到的身份证号多有错误,验证更直观
2.出生的日期用TEXT(TEXT(MID(),"00-00-00"),"e年m月d日")取得,这样产生的日期是规
3.身份证第17位是奇数时为男,偶数时为女,用MOD函数性别,当然07版中也可以用ISODD
4.有效性验证的方法为检验码是否正确+地区码是否存在,否则返回错误
5.第18位号的产生方法为
(1)用MID及ROW函数将身份证号的前17位数字分别乘以2的{17,16,15,14,13,1 (2)将(1)中得到的数字用SUM求和
(3)再将结果用MOD取11的余数加上1
(4)再利用上述结果用MID函数取"10x98765432"的中数字得利第18位数字的验证码6.地区的获得分四步
(1)先用LEFT取身份证号前两位,乘以10000,再用VLOOKUP找到省或直辖市
(2)用上述方法再取前4位号码,乘以100,再用VLOOKUP函数找到市
(3)最后取前6位数,找到县或区
(4)将三者用&连接,即可得到完整的地区
7.现在的15位身份证号已经很少了,故本表没有考虑将15位号码改为18位
8.以上所有技术均来自EH论坛,感谢EH为广大EXCEL们所做的巨
用INDEX取前六位身份证号。
,只为了不产生日期上错误。
,验证更直观
样产生的日期是规范格式
版中也可以用ISODD或ISEVEN
6,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1}次方8位数字的验证码
省或直辖市
EL们所做的巨大贡献!