我想用excel生成5000个以内的随机不重复的5位数字。

我想用excel生成5000个以内的随机不重复的5位数字,从00000-99999,随机生成,每个单元格放一个数字,不是到是否可以实现。

可以利用VBA来生成5000个随机不重复的5位数字。

软件版本:Office2007

方法如下:

1.Alt+F11,输入代码如下:

Sub m()

For i = 1 To 5000 '1到5000循环,生成5000个数

eee:

Cells(i, "A") = Int(Rnd() * 50000) '随机生产一个小于50000的数

If Cells(i, "A").Value < 10000 Then GoTo eee '如果这个数小于10000,重新生成

If Application.WorksheetFunction.CountIf(Range("A:A"), Cells(i, "A")) > 1 Then GoTo eee '如果这个数已经存在了,也重新生成

Next i

End Sub

2.F5执行代码,返回Excel得到结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-03-18

选中A1:A5000,输入下面公式再按Ctrl + Shift + Enter 三键结束

=TEXT(MOD(SMALL(RANDBETWEEN(ROW(1:5000)^0,9999)*100000+ROW(1:5000),ROW(1:5000)),100000),"00000")


PS:公式单元格较多,该公式计算速度有点慢……

效果如图:

本回答被提问者采纳
第2个回答  2019-05-11
在名称框内输入A1:A100000,回车选择此单元格区域。
输入=TEXT(ROW()-1,"00000")
CTRL+ENTER
※选择A列 复制后粘贴数值到A列
在B1中输入或复制粘贴下列公式
=RAND()
回车,双击B1右下角的填充柄(黑色小方块),填充公式到B100000。
选择B列任一非空单元格,单击升序或降序图标
A列即可得到不重复的00000-99999的值追答

或=TEXT(RANDBETWEEN(0,99999),"00000")

第3个回答  2013-12-06
=TEXT(MOD(SMALL(RANDBETWEEN(ROW(1:5000)^0,9999)*10000+ROW(1:5000),ROW(1:5000)),10000),"00000")
楼上的公式是100000,当然慢了,改成10000就会快很多呀。
第4个回答  2015-10-22
  以0-5000两种方法:
  一、rand函数=ROUND(RAND()*5000,0)因为rand函数产生的是0-50的随机数,所以乘100就是0-5000了。又因为rand产生的小数位比较长,所以用round函数四舍五入取整。
  二、randbetween函数=RANDBETWEEN(0,5000)不知道这个函数在03版里能不能用。一般这样生成的随机是不重复的。
  Microsoft Excel是微软公司的办公软件Microsoft office的组件之一,是由Microsoft为Windows和Apple Macintosh操作系统的电脑而编写和运行的一款试算表软件。Excel 是微软办公套装软件的一个重要的组成部分,它可以进行各种数据的处理、统计分析和辅助决策操作,广泛地应用于管理、统计财经、金融等众多领域。
相似回答