如何用函数在身份证号码中提取性别
老身份证号码有15位数字,其中第15位( 最后一位数字代表性别);新的身份证号码是18位数字(倒数第二位数字代表性别),都是奇数代表“男”;偶数代表“女”。如果B2单元格是身份证号码,可以在对应单元格中输入
=IF(MOD(MID(B2,(LEN(B2)=18)*2+15,1),2),"男","女")
即可将身份证中对应表示性别的数字翻译成性别(注:该公式不仅实用于18位身份证号码,也适用月15位身份证号码)
操作方法
- 01
LEN(B2)=18含义:LEN(test) 表示返回文本串(test)的字符数。 参数:Text 待要查找其长度的文本。如果B2是18位身份证号码,则该式成立,返回的数字式1则 (LEN(B2)=18)*2+15值是17,如果B2是15位身份证号码,则该式不成立,返回的数字式0则(LEN(B2)=18)*2+15值是15
- 02
MID(B2,,1)含义:这里用了MID(text,start_num,num_chars)函数。text表示字符串;start_num表示text 中被提取的字符部分的开始位置。num_chars表示要返回的字符数。如果是18位身份证,从第17为开始取一位数字,如果是15位身份证(即倒数第二位数字),则从第15为开始取一位数字(即最后一位数字)。
- 03
MOD( MID(B2,(LEN(B2)=18)*2+15,1),2)含义: mod(nExp1,nExp2)函数是一个求余函数,即求nExp1除以nExp2的余数。该式表示MID(B2(LEN(B2)=18)*2+15,1)(即身份证中表示性别的数字)除以2的余数,如果是男性身份证号码则余数是1,女性身份证号码余数是0.
- 04
IF( MOD(MID(B2,(LEN(B2)=18)*2+15,1),2),"男","女")含义: IF(logical_test,value_if_true,value_if_false)这是个条件函数,如果Value_if_true logical_test 为 真(非0)时返回value_if_true(即括号里的第二位数字)。如果Value_if_true logical_test 为 假(0)时返回value_if_false(即括号里的第三位数字),MOD(MID(B2,(LEN(B2)=18)*2+15,1),2)余数是1为真,返回字符"男";MOD(MID(B2,(LEN(B2)=18)*2+15,1),2)余数是0为假,返回字符"女"。
- 05
最后可以鼠标放在C2单元格,待鼠标变成实心十字架时向下拖动,能复制该公式。