=IF(F3="","",CHOOSE(MOD(IF(LEN(F3)=15,RIGHT(F3,1),IF(LEN(F3)=18,MID(F3,17,1),"")),2)+1,"女","男"))

请问哪位大侠能帮我详细解释一下上面的公式?

这是根据身份证号求性别的公式。中间部分:
IF(LEN(F3)=15,RIGHT(F3,1),IF(LEN(F3)=18,MID(F3,17,1),""))
是要得到15位或18证号的性别标识数字,15位的是最后一位,18位的是倒数第二位。
得到这个数字后再用MOD函数去将这个数字尽除2,如果这个数是奇数,结果就一定是1,如果是偶数就一定为0。最后用CHOOSE根据结果去分别调用“男”和“女”,但因为CHOOSE的判断参数不能有0,所以就在后面加上1,然后再“男”放到后面,这样也就能达到效果。

但可以有更简单点的公式:
=IF(MOD(MID(A1,15+(LEN(A1)=18)*2,1),2),"男","女")追问

if后mid(f3,17,1)是什么意思呢?谢谢

追答

从F3单元格内容中的第17个字符开始提取,提取的数字是1位,即只提取1个字符。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-10
1.如果F3为空值,就显示空值,
2.不看choose里面的东西,就是这样choose(数字,,"女","男"),也就是这个数字是1就是女,是2的话就是男。
3.IF(LEN(F3)=15,RIGHT(F3,1),IF(LEN(F3)=18,MID(F3,17,1),"") 这里面是用来区分身份中男女的,如果身份证号码是15位就取最后一位数字,如果18位数取第17位的数字。
4.MOD(取到的数字,2)判断奇数还是偶数,除以2的余数,是0就是偶数,1就是奇数。
5.如果我们取到偶数,choose(0+1,,"女","男"),就是女;反之choose(1+1,,"女","男"),就是男
第2个回答  2012-02-10
按身份证号辨别男女(包括一代、二代身份证),不过上述方法不是最好的。
楼下的不错,这个也可以。
=IF(MOD(MID(A2,LEN(A2)*2/3+5,1),2),"男","女")
相似回答