对《巧用Excel函数分辨人员身份》一文的补充
软件世界
2002年第38期所刊《巧用Excel函数分辨人员身份》一文,提出了让计算机自动填写表格内容的方法,减轻了工作负担。笔者还对该文提出以下几点补充,并推荐使用YEAR()、TODAY()、NOW()、LEN()和MID()函数。
一、计算“年龄”时,因为18位身份证号码也比较多,而且身份证号的最后一位字符有可能为X,所以身份证号应为字符型数据。
计算年龄时,若采用上期所讲的,利用常数102作被减数,那么每年都要修改操作代码。最好先用YEAR(TODAY())或YEAR(NOW())取出当前年号,然后减去身份证号中取出的年号来求年龄。身份证的字长可用LEN()测出。设表格单元格C2为身份证号,则年龄可由下式计算:
年龄=YEAR(TODAY())-IF(LEN(C2)=18,MID(C2,7,4),MID(C2,7,2)+1900),
或:
年龄=YEAR(NOW())-IF(LEN(C2)=18,MID(C2,7,4),MID(C2,7,2)+1900)。
二、身份证号中只用一位字符即可判别性别,当身份证号为18位时,则“性别”可由下式计算:
性别=IF(MOD(MID(C2,17,1),2))=0,“男”,“女”)。
三、通常人们填写出生日期时只需年份与月份,当身份证号为18位时,“出生年月”可由下式计算:
出生年月=MID(C2,7,4)。
分别考虑身份证号为15位和18位两种字长的情况,就可以顺利地判别出“性别”与“出生年月”来了。