excel随机数不重复的问题

我想产生一组,1-60的随机数,要求不重复!谢谢

1、在工作表左上角的名称框中输入A1:A60 按确定,将A1:A60单元格选中,输入=RAND()  按Ctrl+Enter组合键结束

2、在B1单元格输入以下公式,然后向下填充公式

=RANK(A1,A:A)

公式表示:返回A1在A列中的排名,因RAND()几无重复,因此返回的排名都是唯一的,符合1-60随机且不重复的要求。

3、可根据需要,隐藏A列。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-09-17
在A1里面A1-A999中用公式生成999个随机数=RAND()
B1-B60中用公式排序,B1中输入=RANK(A1,$A$1:$A$999),一直拉到B60
B1:B60就是1-60个不重复的随机数字本回答被提问者和网友采纳
第2个回答  2008-09-18
给你两个代码:
1、只能在某一列进行,比如在A1:A60
Sub Emily08112005()
Dim DrawnArray(1 To 60) As Boolean
Dim NumArray(1 To 60, 0) As Integer
Erase DrawnArray
For i = 1 To 60
num = Int(60 * Rnd + 1)
Do While DrawnArray(num) = True
num = Int(60 * Rnd + 1)
Loop
DrawnArray(num) = True
NumArray(i, 0) = num
Next i
Sheet1.Range("A1:A60") = NumArray
End Sub

2、可以在某一个区间内,比如A1:F10
Sub five()
For Each c In Range("A1:F10")
c.Value = Int(Rnd() * 60) + 1
Do While WorksheetFunction.CountIf(Range("A1:F10"), c) > 1
c.Value = Int(Rnd() * 60) + 1
Loop
Next
End Sub
第3个回答  2008-09-17
excel工作表窗口中,同时按ALT和F11两个键,进入VBA编程界面,然后点击VBA菜单;“插入-模块”,在右栏的空白区粘贴代码
回到excel工作表窗口,点击菜单:工具-宏-宏,点选宏的名字 yyy,再点击“执行”按钮
在A1:A60自动生成不重复的随机数
sub yyy()
Dim i As Integer, j As Integer, a(1 To 60) As Integer
Randomize
For i = 1 To 60
a(i) = Int(Rnd * 60) + 1
For j = 1 To i - 1

If a(i) = a(j) Then
j = i - 1
i = i - 1
End If
Next
Next
Range("a1").Resize(i - 1, 1) = Application.Transpose(a)
end sub
第4个回答  2008-09-17
=RANDBETWEEN(1,60)
相似回答