启用迭代计算
如附件:
A1输入
=IF(COUNTIF($A$1:$A$6,A1)>1,1+INT(RAND()*60),A1)
下拉至A6,
重新下拉一次 刷新一次
Excel有一个随机函数RAND(),用公式=rand()*59+1可以得到一个1-60的小数。这个时候可以通过修改单元格格式中数字为数值,设置保留小数点后0位数,让它显示成整数。
但是用这个随机函数是没办法完全实现6个结果都不相同的情况的。不过有很大可能6个结果都不相同。如果出现相同的,双击一个单元格就可以达到刷新重新随机的作用。多随机几次就行了。
我也试了用宏代码来编程,但是还是没办法完全实现不相同的情况。
如下图所示结构:
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,))向下复制公式即可。
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
=INT(RAND()*60) 生成随机数,往下拉就行了。一般不会重复。