excle表内的随机函数应用

excle表内的随机函数应用

ID:40747005

大小:12.87 KB

页数:5页

时间:2019-08-07

excle表内的随机函数应用_第1页
excle表内的随机函数应用_第2页
excle表内的随机函数应用_第3页
excle表内的随机函数应用_第4页
excle表内的随机函数应用_第5页
资源描述:

《excle表内的随机函数应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一:生成随机数字①生成随机数比较简单,=rand()即可生成0-1之间(不包含1)的随机小数;②如果想要得到整数,就用=int(rand())*10,表示0至9的整数,以此类推;③如果要生成a与b之间的随机实数,就用=rand()*(b-a)+a,如果是要整数就用=int(rand()*(b-a))+a;稍微扩充一下,就能产生固定位数的整数了。注意:如果要使用函数rand()生成一随机数,并且使之不随单元格计算而改变,可以在编辑栏中输入“=rand()”,保持编辑状态,然后按F9,将公式永久性地改为随机数。不过,这样只能一个一个的永久性更改,如果数字比较多,也可以全部选择之后,另外选择

2、一个合适的位置粘贴,粘贴的方法是点击“右键”执行“选择性粘贴”,然后选择“数值”,即可将之前复制的随机数公式产生的数值(而不是公式)复制下来!二:产生随机字母随机小写字母:=CHAR(INT(RAND()*26)+97)随机大写字母:=CHAR(INT(RAND()*26)+65)随机大小写混合字母:=CHAR(INT(RAND()*26)+if(INT(RAND()*2)=0,65,97))三:产生随机的六位数的字母和数字混合=CONCATENATE(IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(I

3、NT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RA

4、ND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+

5、97)))))四:随机不重复数字序列的生成方法在某些特定的工作需求下,我们需要生成一个不重复的随机序列。比如:我们要模拟洗牌,将一副扑克牌去掉大小怪后剩下的52张打乱。比较笨的方法是在1-52间每生成一个随机数后,检查该随机数是否出现过,如果是第一次出现,就放到序列里,否则重新生成一个随机数作检查。在excelworksheet里面用这种办法,会造成if多层嵌套,不胜其烦,在VBA里面做简单一些,但是效率太差,越到序列的后端,效率越差。当然也有比较好的办法,在VBA里面,将a(1)-a(52)分别赋予1-52,然后做52次循环,例如,第s次生成一个1-52间的随机数r,将a(s)与a(

6、r)互换,这样的话,就打乱了原有序列,得到一个不重复的随机序列。VBA里这个算法是很容易实现的,但是,处于通用性和安全考虑,有的时候我们并不希望用VBA,我们来看看在worksheet里面如何利用内置函数实现这个功能。①在A1-A52间填入"=INT(RAND()*52)+1",产生1-52间的随机数,注意这里是有重复的②在B1-B52间填入1-52③在C54-BB54填入1-52④在C1填入"=IF(ROW()=C$54,INDEX(B$1:B$52,INDEX($A$1:$A$52,C$54)),IF(ROW()=INDEX($A$1:$A$52,C$54),INDEX(B$1:B

7、$52,C$54),B1))"。分项解释:1:ROW()=C$54,如果当前行等于当前交换所排的序号2:INDEX(B$1:B$52,INDEX($A$1:$A$52,C$54)),返回在B1到B52中选择A1:A52中的第C54个值3:IF(ROW()=INDEX($A$1:$A$52,C$54),否则的话,如果当前行等于A1:A52中第C54个值,则:4:INDEX(B$1:B$52,C$54),返回B1:B52中的第C54个值5:若以上条

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。