admin管理员组

文章数量:1538452

2024年5月23日发(作者:)

excel中rand()函数的妙用

话题:函数 整数 公式

有时需要生成某个范围内随机整数,在Excel中可以

使用RAND或RANDBETWEEN函数。1.使用RAND函数。

RAND函数返回大于等于 0 及小于 1 的均匀分布随机实

数,其语法是:=RAND()要生成某个范围内的随机整数,可

以使用以下公式:=INT((上限-下限+1)*RAND()+下限)生成

的随机整数中有可能包含上限或下限。例如要生成1-100之

间的随机整数,在单元格中输入公式:

=INT(100*RAND()+1)2.使用RANDBETWEEN函数

RANDBETWEEN函数可以直接返回位于指定的两个数之间

的一个随机整数,其语法是:RANDBETWEEN(bottom,top)

参数“bottom ”为指定的最小整数,参数“top”为指定的最大整

数。如公式:=RANDBETWEEN(1,100)返回1-100之间的随

机整数,可能包含1或100。在Excel 2003中,

RANDBETWEEN函数不能直接使用,需要加载分析工具库

后才能使用。方法是:单击菜单“工具→加载项”,在弹出的“加

载项”对话框中勾选“分析工具库”,单击“确定”即可。而在

Excel 2007中RANDBETWEEN函数可以直接使用。3.在

EXCEL2000及以后的版本中,Randbetween()函数默认并不

加载,可以用以下方法实现:方法一,加载RandBetween法:

点工具→加裁宏→分析工具库,确定。这样操作可能有些人

的机器会需要OFFICE的安装盘。加裁完成后,函数中就会

有一个randbetween()这个函数。 此方法是解决问题的根本

之道,但对于找不到安装光盘的人来说,此路不通。方法二,

自定义函数法:点工具→宏→Visual Basic 编辑器(或按

Alt+F11),打开Vb编辑器,插入模块,输入以下代码后关

闭。Function RANDBETWEEN(bottom, top) As

DoubleRANDBETWEEN = Int(Rnd() * (top - bottom + 1)) +

bottomEnd Function方法三,替代法:Excel虽然默认没有

RandBetween()函数,但有Rand()这个函数。我们可能利用它

实现随机数。Rand()产生的是大于等于0,且小于1的随机小

数,我们可以利用INT()函数取整,再进行以下转化:

=Int(Rand()*(top - bottom + 1))+ bottom其中的bottom与top

要以数字出现。注意,以上可以使用。在单元格输入

=RANDBETWEEN(80,90) , 然后单击菜单中“分析”即可出

现需要的随机数。最后右击单元格,复制,右键,选择性粘

贴,粘贴数据,即可把函数去掉,留下我们需要的数据。4.

用excel生成字母大小写加数字的任意位数随机密码考虑到

部分网友可能急需这个公式,那么我先在这里把公式贴出来

以供急用:

=CONCATENATE(IF(INT(RAND()*3)=0,CHAR(INT(RAND(

)*10+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)

),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*3)=0,CHA

R(INT(RAND()*10+48)),IF(INT(RAND()*2)=0,CHAR(INT(R

AND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAN

D()*3)=0,CHAR(INT(RAND()*10+48)),IF(INT(RAND()*2)=0

,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97))))

,IF(INT(RAND()*3)=0,CHAR(INT(RAND()*10+48)),IF(INT(

RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RA

ND()*25+97)))),IF(INT(RAND()*3)=0,CHAR(INT(RAND()*1

0+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),C

HAR(INT(RAND()*25+97)))),IF(INT(RAND()*3)=0,CHAR(I

NT(RAND()*10+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAN

D()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*

3)=0,CHAR(INT(RAND()*10+48)),IF(INT(RAND()*2)=0,CH

AR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(

INT(RAND()*3)=0,CHAR(INT(RAND()*10+48)),IF(INT(RA

ND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND(

)*25+97)))))我们来分解这个函数,这个函数以

CONCATENATE函数为主体包含了八个子部分:

IF(INT(RAND()*3)=0,CHAR(INT(RAND()*10+48)),IF(INT(R

AND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAN

D()*25+97))))而这个子部分又是由两个判断语句嵌套实现

的,这个机制实现数字、大写字母、小写字母出现的概率相

同因为INT(RAND()*3)=0这个公式成功的概率只有1/3而

CHAR(INT(RAND()*10+48)) 则显示 [0-9]之间的数而

CHAR(INT(RAND()*25+65)) 则显示 [A-Z]之间的字母而

CHAR(INT(RAND()*25+97)) 则显示 [a-z]之间的字母

本文标签: 函数使用可能需要方法