当前位置:首页> 正文

excel随机数生成公式|excle随机生成身份证号

excel随机数生成公式|excle随机生成身份证号)

我们在做教程时,经常用到大量个人基本信息,如果用实名和正确信息,会造成侵犯个人信息权。

为此,笔者经过筛选,用随机函数RAND随机生成姓名、学历、性别、身份证、手机号等信息,避免了侵权的问题。

一、随机生成姓名

中国人的姓名多由2~3位构成(复姓可能为4位),首先,我们要把从网上抄来的2~3位姓名拆分为单字。如下图:

excel随机数生成公式(excle随机生成身份证号

图1

姓:在F2单元格输入函数:=LEFT(E2,1),表示截取姓名中的第一个字。

名1:在G2单元格输入函数:

=IF(LEN(E2)=2,RIGHT(E2,1),MID(E2,2,1))

以上函数用IF函数进行判断,先用LEN()判断计算姓名字数,如果是两个字,则用RIGHT(E2,1)显示最右边的名;如果是3个字,用MID(E2,2,1)从姓名单元格第二位取名当中的第一个字。

名2:在H2单元格输入函数:

=IF(LEN(E2)=2,"",MID(E2,3,1))

以上函数用IF函数进行判断,先用LEN()判断计算姓名字数,如果是两个字,则用""表示空;如果是3个字,用MID(E2,3,1)从姓名单元格第三位取姓名当中的第三个字,也可用RIGHT(E2,1)取最右边的一个字。

用三列辅助列随机取数,分别对应姓氏和两个名,函数很简单,分别在三个单元格输入:=RAND(),然后复制公式到所需行。

excel随机数生成公式|excle随机生成身份证号

图2

随机数和姓名处理清楚后,需要随机生成姓名并合并,操作方法如下图:

excel随机数生成公式|excle随机生成身份证号

图3

在K3单元格输入函数:

=IFERROR(INDEX(F$2:F$471,RANK(A2,A:A)),"")

此处用INDEX RANK函数组合,先用RANK(A2,A:A)计算A2的数值在A列中的排名,然后用INDEX(F$2:F$471,把F$2:F$471中该排名数字所在的行结果进行调用,即可得到随机姓。

IFERROR函数表示查找的内容为错误值时进行屏蔽。

两个随机名的操作方法是一样的,只需要计算B列和C列中随机数的排名行即可。

L列函数:

=IFERROR(INDEX(G$2:G$471,RANK(B2,B:B)),"")

M列函数:

=IFERROR(INDEX(H$2:H$471,RANK(C2,C:C)),"")

在N2单元格输入函数:=K2&L2&M2,把随机生成的姓和名连接起来,由此得到随机生成的姓名组合。

对照图3看就一目了然,每按一次F9就随机生成一次。

二、随机生成学历和性别

excel随机数生成公式|excle随机生成身份证号

图4

如上图,在需要生成学历的第一个单元格输入函数:

=VLOOKUP(INT(RAND()*8) 1,{1,"博士";2,"硕士";3,"本科";4,"大专";5,"高中或中专";6,"初中";7,"小学";8,"文盲或半文盲"},2,)

公式解析:

(RAND()*8) 1表示随机生成1~8之间的数字,用INT取整数,取{1,"博士";2,"硕士";3,"本科"...}中数字对应的值。2表示如果随机数取整后不在1~8范围,则取第二个,也就是VLOOKUP函数中的第二列。

随机生成性别的方法同上,函数为:

=VLOOKUP(INT(RAND()*2) 1,{1,"男";2,"女"},2,)

当然还有其他方法可以随机生成。如:

=CHOOSE(RANDBETWEEN(1,2),"男","女")

三、随机生成身份证号码

excel随机数生成公式|excle随机生成身份证号

图5

这里的出生日期和区域代码要手动输入,可以在网上搜索,区域代码我前几天讲过,这里为了演示,图中数据是随意复制的数据。

在需要生成身份证的单元格输入函数:

=U2&TEXT(T2,"yyyymmdd")&TEXT(RAND()*10^3,"0000")

TEXT(T2,"yyyymmdd")表示将日期转换为如19920215.

TEXT(RAND()*10^3,"0000")表示取RAND()*10^3随机生成的4位数。

四、随机生成手机号

excel随机数生成公式|excle随机生成身份证号

图6

我们先随机生成网段如131 133 135等,再随机生成8位数,然后把网段和随机的8位数连接起来就得到随机手机号码。

网段生成函数:

=CHOOSE(RANDBETWEEN(1,14),131,135,136,137,138,139,151,152,153,157,159,180,181,183)

RANDBETWEEN(1,14)表示随机生成1~14中的随意数,再用CHOOSE嵌套,当函数RANDBETWEEN(1,14)出现1的时候,函数就变为:CHOOSE(131,135,136......),最终结果就是131。

网段生成8位数:

=RANDBETWEEN(10000000,99999999)

表示随机生成10000000到99999999

怎么样,是不是很简单,再也不要担心侵权了!

当然圈内高手如云,我的方法不值得一提,希望高手多多指教。

展开全文阅读

相关内容