在Excel中如何得到1到100不重复的随机数?

注意不是100个数,而是一定量比如30个1至100以内不重复的随机数。

=INT(RAND()*(b-a)+a)表示a-b之间的整数,>=a,<b
如果在三十个单元格中输入=INT(RAND()*(101-1)+1),可以实现1-100随机,但有可能有重复。
但如果实现你说的30个不重复的,我想可以这样
在三十个单元格中输入
=INT(RAND()*(15-1)+1),
=INT(RAND()*(30-15)+15),
...
=INT(RAND()*(85-70)+70),
=INT(RAND()*(101-85)+85),
我随便写的,意思是这样。按F9,可以实现随机。不知道能不能达到您的效果。:)追问

哈哈,你的办法倒是有趣。不过这样的随机数并不随机。第一个被限定在15之内,第二个被限定在15~30之内,……,如果这是在抽奖,摇号分配住房,……等。也许你不会乐意。

追答

如果你针对每个单元格看,它确实不随机,但就这对整个30个数来说是随机的。如果事先大家都不知道哪个单元格里面放的什么函数,或者写函数的人也是随机放的,我觉得应该是公平的。另外我在网上找到了下面的,挺好:
B1:B100填充公式=Rand()
A1=RANK(B1,$B$1:$B$100),把公式向下复制
按F9,A1:A100即为所需结果
这里Rand()确实也不能保证完全不重复。但是这个重复的概率非常非常小。:)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-11
第2个回答  2011-12-21
=RANDBETWEEN(1,100)追问

尚未解决不要重复问题。另外,要说明该函数需较高版本才行,我用的Excel 2003就没有这个函数。

追答

既然是随机就可以产生任何数,你不能对数字进行控制,否则就不是随机数了,所以当你数字采样量较大时,数字重复是难免的。除非你的数值空间较大,取样量较小可以避免重复,否则从函数上来说,不可控。

第3个回答  2011-12-21
=100*RAND()追问

整数噢。

追答

忘了取整=INT(100*RAND())

追问

尚未解决不要重复问题。

相似回答