【精选资料】excle中如何生成随机数 下载本文

=RAND() 此函数是生成0~1之间的随机小数。

若要生成 a 与 b 之间的随机实数,应使用: =RAND()*(b-a)+a 所以若生成1 与 10 之间的随机实数,应使用: =RAND()*9+1 A1 输入 =rand() 下拉至A1000

B1 输入 1, B2 输入 2, 下拉至 B1000, 即B1000 是 1000 点选a1:b1000, 以A列排序

B列便是 1-1000的随机数, 且不重复

再来看下一个函数,求整函数

=int(a)表示的是求不大于a的最大整数,比如 int(6.78)=6; int(9)=9; int(-1.5)=-2 int(π)=3

现在把这两个函数结合到一起,就可以完成你的问题了。 选中某一列的第一行的单元格,在其中输入 =int(rand()*9)+1 或者输入:

=int(rand()*9+1)

都可以得到1-10之间的一个随机整数。

然后用鼠标拖动该单元右下角的填充柄向下拖动,就可以得到一列符合条件的1-10之间的随机整数了。

用同样的方法你也可以得到一行或多行或多列甚至一个工作表的随机数。

在excel中如何产生不重复随机数? 问题:

如何在Excel b2:b101中,填充1-100范围的不重复随机数?

方法:

Sub 不重复随机数()

For i = 2 To 101

Range(\ ‘初始化要填充的范围

Next i

For i = 2 To 101

Range(\

Do While WorksheetFunction.CountIf(Range(\Range(\

Range(\ Loop Next i End Sub 注:

(1)VBA中有随机函数rnd(),功能是:返回一个小于1,同时大于等于0的随机数。若要产生一个范围从lowerbound为m,到upperbound为n的随机数序列,常用算法是:int(rnd()*(n-m+1))+m

(2)countif()是Excel工作表中的函数,不可在VBA中直接调用,可以用“worksheetfunction.函数”作为方法来调用工作表函数。

MyValue = Int((6 * Rnd) + 1) ' 生成 1 到 6 之间的随机数值。

提供两组公式来生成不重复的1~25的随机数值:

(1)

A1

=RANK(INDIRECT(\25)

复制单元格A1,粘至单元格A1:E5。

公式的原理为:

将随机数值来拿排序(RANK函数),生成1~25的数值(基不上名次重复的机率应该是很低的)。

INDIRECT(\:将5×5的单元格对照到单元格G1:G25。

(2) 单元格A1:=RANK(OFFSET($G$1,(ROW(1:1)-1)*5+COLUMN(A:A)-1,,,),$G$1:$G$25)

本式的原理和(1)很接近,只是将INDIRECT函数以OFFSET函数来取代,以取得地址。

使用方法:

1、选择要填充随机数的单元格范围, 2、点击按钮

3、输入随机区间的上限值 4、输入下限值

5、不重复的随机数就自动填充到你选择的单元格内了 注意:

1、如果提示启用宏,则启用哦

2、选择的单元格不要多于随机区间内的整数个数

随机数RAND() 语法RAND( )

RAND函数详解:返回大于等于 0 及小于 1 的均匀分布随机实数,每次计算工作表时都将返回一个新的随机实数。

注解:若要生成 a 与 b 之间的随机实数,请使用:RAND()*(b-a)+a 公式“=RAND()*1000”返回一个大于等于0、小于1000的随机数