上一篇教程中,进阶君采用两种方法,从身份证号码中提取了出生日期。有小伙伴发私信说:如何从身份证号码当中提取性别呢?现在的身份证号码共计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,'女','男') 具体操作过程及效如下动图所示: |
|
来自: weimiao > 《OFFICE应用》