【excel】根据单元格公式随机生成人名、及按概率生成不同值的测试数据


注意,在excel中应用公式时,单元格格式应设为常规。

excel根据行号轮流选取不同的填充值

=IF(MOD(ROW()-1,3)=0,"值1",IF(MOD(ROW()-1,3)=1,"值2","值3"))

按概率选取填充值

自动在excel中列填充数据,要求单元格值在男和女之间随机取值,其中取男的概率为0.9,取女的概率为0.1:

=IF(RAND()<=0.9, "男", "女")

如果概率扩展到3类:

=IF(RAND()<=0.8, "男", IF(RAND()<=0.1, "女", "未知"))

随机生成18位数字(伪身份证号)

=TEXT(RANDBETWEEN(10^17,10^18-1),"000000000000000000")

这是因为在Excel中,整数的精度是有限的。当一个整数超过了一定的数量级之后,其精度就会变得不够准确,这就导致了一些奇怪的现象,例如生成的数最后三位总为0。
在这个公式中,我们使用了RANDBETWEEN函数来生成一个介于10的17次方和10的18次方减1之间的整数。这个整数的最大值是10的18次方减1,也就是999999999999999999,总共有18位数字。然而,Excel中的整数最多只能精确表示15位数字,超过这个范围的数字就会丢失精度。因此,当我们使用TEXT函数将这个整数转换为文本字符串时,最后三位数字就会被自动补0,因为Excel已经无法精确表示它们。
如果你需要生成18位数字且不带末尾0的随机数,可以在不同列各生成2个9位的随机数,转换成文本后,使用&公式进行拼接。

生成2到3字的随机人名

Excel本身没有内置生成中文人名的函数,但可以通过一些技巧实现该功能。以下是一种可能的方法:

在Excel中创建一个包含所有可能姓氏的列表,例如在A列中输入所有的姓氏(如张、王、李、刘等)。

在B列中输入以下公式,用于随机选择一个姓氏:

=INDEX(A:A, RANDBETWEEN(1, COUNTA(A:A)))

该公式会通过RANDBETWEEN函数生成一个1到姓氏总数之间的随机整数,然后通过INDEX函数返回对应的姓氏。

  1. 在C列中输入以下公式,用于生成一个随机的名字:
=LEFT(INDEX($F$1:$F$710, RANDBETWEEN(1, 710)), RANDBETWEEN(2, 3))

该公式会从一个预设的中文名字列表中随机选择一个名字,并随机确定该名字的长度为2或3个汉字。
其中,预设的中文名字列表可以通过网上查找或自行收集。在该公式中,我们将名字列表存储在F1:F710单元格中,你需要将这个范围修改为适合你自己的范围。

  1. 将B列和C列合并,得到最终的随机中文人名,例如:
= B1 & C1

将该公式输入到D列中即可得到2到3字的随机中文人名。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颢师傅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值