用excel随机1到60,生成6个不重复得整数

很急

启用迭代计算


如附件:


A1输入

=IF(COUNTIF($A$1:$A$6,A1)>1,1+INT(RAND()*60),A1)

下拉至A6,  

重新下拉一次 刷新一次


追问

怎么有0出现啊?

追答

不可能有0出现, 你按照要求启用迭代计算了么

追问

你用的是什么版本的excel 是excel2007? 网上找了恒久都没找到 能发一个过来吗?

追答

可以

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-09

Excel有一个随机函数RAND(),用公式=rand()*59+1可以得到一个1-60的小数。这个时候可以通过修改单元格格式中数字为数值,设置保留小数点后0位数,让它显示成整数。

但是用这个随机函数是没办法完全实现6个结果都不相同的情况的。不过有很大可能6个结果都不相同。如果出现相同的,双击一个单元格就可以达到刷新重新随机的作用。多随机几次就行了。

我也试了用宏代码来编程,但是还是没办法完全实现不相同的情况。

第2个回答  推荐于2016-05-09

如下图所示结构:

A列为1-60的数列(随机数范围);

B列对应1-60为随机数,B2=RAND();

C列为1-6的数列(不重复的个数);

D列为结果:D2=INDEX($A$2:$A$61,MATCH(SMALL($B$2:$B$61,C2),$B$2:$B$61,))向下复制公式即可。

第3个回答  2019-01-08
Option Base 1
Sub A6个随机数()
Dim a(), n As Long, i As Long, j As Long
n = 6
ReDim a(1 To n, 1)
Randomize
For i = 1 To n
my:
   a(i, 1) = Int(60 * Rnd + 1)
   If a(i, 1) = 0 Then GoTo my
   For j = 1 To i - 1
    If a(i, 1) = a(j, 1) Then i = i - 1: Exit For
  Next
Next
Range("a2:a7").ClearContents
Range("a2:a7") = a
End Sub

第4个回答  2013-12-08
=INT(RAND()*60) 生成随机数,往下拉就行了。一般不会重复。追问

有重复的啊

追答

要绝对不重复就只有用VBA了。

相似回答