分享

身份证号码提取性别?弄懂身份证信息,三个函数完成,打卡下班

 weimiao 2019-09-07

上一篇教程中,进阶君采用两种方法,从身份证号码中提取了出生日期。有小伙伴发私信说:如何从身份证号码当中提取性别呢?现在的身份证号码共计18位,里面包含了很多信息,其中就有性别信息。

有小伙伴拿出了身份证号码仔细看了看,并没有看到性别。出生日期很明显,而性别在哪里呢?

1 信息分析

我们现在的身份证,共计18位数字,其中最后1位有可能是字母X,那么身份证号码里面到底包含着哪些信息呢?

身份证号码提取性别?弄懂身份证信息,三个函数完成,打卡下班

从上图我们可以知道,身份证的第17位数字,如果有奇数,代表男,如果有偶数代表女。也就是说,看到身份证号码,我们是可以直接判断男女的。

算法是:

(1)取出身份证号码的第17位。

(2)判断奇偶。数学知识告诉我们,偶数是2的倍数,奇数不是2的倍数。

(3)根据判断结果,确定性别。

2 功能实现

身份证号码提取性别?弄懂身份证信息,三个函数完成,打卡下班

(一)取出身份证号码的第17位

方法:运用MID函数完成

该函数在上一篇教程中进行了讲解,在这不作述赘,直接使用。身份证号码,从第17位开始取,只取1位。在E3单元格中写入公式:=MID(D3,17,1),得到的结果如下图所示:

身份证号码提取性别?弄懂身份证信息,三个函数完成,打卡下班

(二)构建奇偶判断表达式

方法:运用求余函数——MOD函数完成

如果要判断奇偶,首先要构建奇偶判断表达式,也就是当为偶数(或者奇数)应该满足的条件。大家都知道,偶数是2的整数倍,那么,偶数如果与2相除,一定能除尽,换言之就是没有余数,即余数为0。

如:X代表一个整数,如果这个整数与2相除后余数为0,则X就一定是偶数,否则就一定是奇数。问题就转换为,如何求余数呢?需要使用求余函数——MOD函数。

(1)格式:=MOD(数1,数2)

(2)功能:求 数1 除以 数2 的余数。

(3)应用

例1:=MOD(4,2),求4除以2的余数,结果为0。

例2:=MOD(5,3),求5除以3的余数,结果为2。

例3:=MOD(4,6),求4除以6的余数,结果为4。(商0,余数为4)

在上面的基础上,我们思考判断表达式:MOD(X,2)=0

身份证号码提取性别?弄懂身份证信息,三个函数完成,打卡下班

如图所示,这个判断表达式需要进行两步运算:

第一步:求MOD(X,2),就是求X与2相除的余数;

第二步:判断余数结果与0是否相等。

当X为偶数时,MOD(X,2)的值为0,于是0=0的判断就成立,表达式得到的结果就为真。当X为奇数时,MOD(X,2)的值为1,于是1=0的判断就不成立,表达式得到的结果就为假。

于是我们可以这样说,这个表达式只有在X为偶数时为真,否则为假。

而现在我们需要判断的这个数是从身份证号码提取的第17位,所以判断表达式替换演变为:

MOD(MID(D3,17,1),2)

(三)显示男女信息

根据上一步的判断结果,我们就可以给出了男女信息了。如果上一步的判断结果为真,则应该显示性别为“女”,否则显示性别为“男”。要达到这个要求,需要使用IF函数。

(1)格式:=IF(判断表达式,第1个表达式,第2个表达式)

(2)功能:判断表达式,当表达式为真时,执行第1个表达式,取得相应值,否则执行第2个表达式,取得相应值。

(3)应用

例1:=IF(3>5,“正确”,“错误”),结果为错误。

例2:=IF(3<5,“正确”,“错误”),结果为正确。

判断表达式:MOD(MID(D3,17,1),2)=0,在取出的值为偶数,表达式为真,应该显示“女”,为奇数时,表达式为假,应该显示“男”

于是公式写成:=IF(MOD(MID(D3,17,1),2)=0,'女','男')

身份证号码提取性别?弄懂身份证信息,三个函数完成,打卡下班

具体操作过程及效如下动图所示:

身份证号码提取性别?弄懂身份证信息,三个函数完成,打卡下班



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多