电脑高人进~~如何用excel随机生成不重复的5位数,例如53976,02941···

如题所述

1、在A1:A10里面用公式:=RAND()生成10个随机数;

2、B1中输入公式:=RANK(A1,$A$1:$A$10,)-1,向下填充到B10;得到0-9的整数;

3、在C1单元格输入公式:=TEXT(B1&B2&B3&B4&B5,"00000"),则结果就是随机生成不重复的5位数。 

在EXCEL2003测试通过。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-25
A1-输入公式 =rand()
向下填充到A10
B1 输入公式 =if(rank(a1,$a$1:$a$10)=10,0,rank(a1,$a$1:$a$10))
向下填充到B5
C1输入公式 =concatenate(b1,b2,b3,b4,b5)
C1显示的就是不重复的5位数

参考资料:http://zhidao.baidu.com/question/68670804.html?si=3

第2个回答  2010-05-20
根据你的要求,我刚才试着做了一下,可以做出来,解决办法如下:
=rand()*(b-a)+a
b 大数 a 小数 即取a-b之间的数 比如 10000.0000-60000.0000

或者rand()*100000
第3个回答  2010-05-21
1. 进入你的EXCEL文件,按 ALT + F11,进入VBA编辑状态
2. 插入 ---> 模块 , Insert ---> Module
3. 将以下VBA代码贴入
4. 例如你要产生一个5位的,就输入 =RandA(5)

Function RandA(iNumber As Integer)
' RandA 函数,返回给定位数的随机数,每一位数字都不相同
' 例 RandA(5) 将返回一个5位的随机数,并且没一位都不相同

Dim i, n As Integer
Dim sResult As String
Dim sTemp As String

n = iNumber

'如果参数不合法,将强制转换成1位或者10位
If iNumber <= 0 Then n = 1
If iNumber >= 10 Then n = 10

For i = 1 To n
sTemp = Int(Rnd() * 10)
While InStr(sResult, sTemp) <> 0
sTemp = Int(Rnd() * 10)
Wend
sResult = sResult & sTemp
Next i

RandA = sResult

End Function
第4个回答  2010-05-27
1. 进入你的EXCEL文件,按 ALT + F11,进入VBA编辑状态
2. 插入 ---> 模块 , Insert ---> Module
3. 将以下VBA代码贴入
4. 例如你要产生一个5位的,就输入 =RandA(5)

Function RandA(iNumber As Integer)
' RandA 函数,返回给定位数的随机数,每一位数字都不相同
' 例 RandA(5) 将返回一个5位的随机数,并且没一位都不相同

Dim i, n As Integer
Dim sResult As String
Dim sTemp As String

n = iNumber

'如果参数不合法,将强制转换成1位或者10位
If iNumber <= 0 Then n = 1
If iNumber >= 10 Then n = 10

For i = 1 To n
sTemp = Int(Rnd() * 10)
While InStr(sResult, sTemp) <> 0
sTemp = Int(Rnd() * 10)
Wend
sResult = sResult & sTemp
Next i

RandA = sResult

End Function本回答被提问者采纳