魔法消消看popstar:批量生成身份證號碼 - Excel函數與公式

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 22:26:44

 

 

批量生成身份证号码

 

前一段时间,曾研究过隐藏在身份证里面的秘密。现在突发奇想:能不能批量生成身份证号码呢?在网上搜了一下,果然有收获。

=INDEX({11;12;13;14;15;21;65;22;23;31;32;33;34;35;36;37;41;42;43;44;45;46;50;51;52;53;54;61;62;63;64},RAND()*31+1)&TEXT(RAND()*9999,"0000")&TEXT(24838+INT(RAND()*8036),"yyyymmdd")&TEXT(INT(RAND()*9999),"0000")

这位仁兄的公式果然是个好法子,能随机生成身份证号码,由此可见EXCEL公式的强大生命力。

现在我有几个问题:

1.这个公式能否逐一解读?抱着一种求疑解惑的精神,想请问各位高人!

2.我想增加一点难度,能否生成符合一定条件的身份证号码,比如我想生成前面区码是“410100”,年龄大于50岁,性别为男的身份证号码。

不知以上两个问题能否解决?

 

 

地区代码取决于数组{11;12;13;14;15;21;65;22;23;31;32;33;34;35;36;37;41;42;43;44;45;46;50;51;52;53;54;61;62;63;64},只是省一级的,相当于六位地区代码中的前二位,后四位根本没有考虑,还有他的公式没有考虑最后一位校验码

 

出生年龄由公式中

=TEXT(24838+INT(RAND()*8036),"yyyymmdd")

生成,因此,决定年龄阶的是24838和8036两个数字(公式中日期在1968年1月1日至1999年12月31日之间)。改变这两个数值,就可以改变看龄区间,以今天为例,大于50岁,我们只要使这两个数字的和在1至21884之间就可以了。