在根据身份证号码判断性别的应用中,大多数人习惯用嵌套的IF函数来判断身份证号码是18位还是15位,然后再分别提取第17位或第15位,该数字为奇数时,判断为“男”,为偶数时,判断为“女”。
如:
=IF(LEN(A2)=18,IF(MOD(MID(A2,17,1),2),"男","女"),IF(LEN(A2)=15,IF(MOD(RIGHT(A2,1),2),"男","女")))
这样做虽然能得出正确的结果,但由于两次分别对18位和15位身份证进行判断和运算,导致公式过长,效率降低。其实,我们可以通过在IF函数中加入简单的计算来避免重复判断,请看下面的公式:
=IF(MOD(MID(A2,(LEN(A2)=18)*2+15,1),2),"男","女")
在这个公式中,如果A2单元格为18位数字,则公式中的“LEN(A2)=18”的值为1,再乘以2,其值为2,加上后面的15,等于17,而如果A2为15位,则“LEN(A2)=18”的值为0,乘以2再加15后的值为15,通过这个办法,利用MID函数智能地取到18位号码的第17位或15位号码的第15位,然后作为MOD的参数,正确判断出该身份证持有人的性别。同样的方法还可以用来智能计算18位和15位身份证的出生日期等其他信息,具体方法请大家开支脑筋,举一反三。
时间: 2024-11-03 02:41:33