惊艳的身份证性别

菜鸟问答


我们都知道身份证号无论是15位旧版的,还是18位新版的,都有一位性别码。旧版第15位,新版第17位,偶数值为女,奇数值为男。因此,在EXCEL表格中,当我们已知身份证号,要判定其性别时,最普通的想法就是:首先用len()函数判定位数,其次用if()mid()组合,15位时,取第15位数,18位时取第17位数,再次用mod()判定奇偶数,最后还用if()判定偶数为女,奇数为男。公式:IF(MOD(IF(LEN(A2)=15,MID(A2,15,1),MID(A2,17,1)),2)=0,"","")。这样虽然也能解决问题,但是难看、难读,又长又臭,实在难以令人佩服!下面,隆重推介我在EXCELHOME论坛看到的,超级版主云南大理的wshcw先生的解决方案,这个公式一样不能用佩服来形容,因为这两个字不足以形容我初见时的心情,我想只能借用“惊艳”二字吧!

TEXT(-1^MID(A1,15,3),";")

如此佳妙,不品评一番,问山实在心痒难耐!

一、谢庭芝兰

前面那个普通公式,要用IF()LEN()MID()三个函数组合费尽九牛二虎之力才能取出身份证号的性别码。而她只需一个MID(A1,15,3) 就艳光四射,一以敌三。这里暗藏两大玄机:一是用MID(A1,15,3)从身份证号的第15位起,共提取151617三位数,若身份证号为15位由于1617位为空,所以MID()函数只取出第15位性别码;若身份证号为18位数,则取三位数,其个位是性别码。二是从数学原理可知,一个数字的个位数的奇偶性决定着这个数的奇偶性。从本例来看无论是18位身份证号还是15位的,用MID(A1,15,3)取数后,其个位都是性别码。说出来简单,我们常说要开动脑筋,但以问山之愚就算开它个7200里也转不到这个道道上来。

二、孟氏芳邻

取出性别码后,由于代表偶或奇数的数码都不唯一,偶数有可能是246……奇数有可能是135……还必须梳理一下,最好以唯一的数码表示奇数或偶数。说到这里,问山之流,能想到的就只有MOD(性别码,2)了。以性别码除2取余数,余数为1是奇数,余数为0是偶数。当然,这样也未尝不可,只是让谢庭芝兰长在这么个庸俗的小环境中,是不是有点于心不忍?择邻而处,于是引出指数概念。-1的偶数次方为1,奇数次方为-1-1^MID(A1,15,3)的运算结果为1则女性,为-1则男性。

三、杨女长成

不能打破常规的人总会这么想,到了这一步总该用到我们最常见的IF()函数了吧,这难道不是理所当然,水到渠成的事吗?IF(-1^MID(A1,15,3)=-1,,)。唉!美人情怀又岂是你我凡夫俗子所能揣测的?!最后,人家是巧妙运用TEXT()函数的正负数显示规则,拒绝平庸,成就高贵!

http://club.excelhome.net/thread-1137538-1-1.html七楼











文章评论

梅花雪

问山不是大智若愚,而是高深莫测[em]e113[/em]

如果

手机阅读易,文后评议难。枯繁生雅韵,南平卧问山。

玫瑰灿烂

[em]e114[/em] 为什么字体是斜的呢?难道也是为了“惊艳”一说?[em]e114[/em]

新月

[em]e134[/em] [em]e134[/em]

于星月

四哥:你说要写篇《石头,剪刀,布》的,怎么没有呢?