`
student_11
  • 浏览: 16222 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

excel 函数 生成 随机数

 
阅读更多
以前使用Excel的随机数函数,生成过固定位数的数字卡的卡号和密码,效果还是蛮好的!现在又有新的需求了,那就是要生成随机字母!为了避免每次有新的需求都要重新写日志,干脆一起写出来吧!
1、生成随机数字

(1)生成随机数比较简单,=rand()即可生成0-1之间的随机数;

(2)如果要是整数,就用=int(rand())*10,表示0至9的整数,以此类推;

(3)如果要生成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))

3、产生随机的六位数的字母和数字混合

=CONCATENATE(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(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(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)))))


4、随机不重复数字序列的生成方法

有些情形下,我们需要生成一个不重复的随机序列。

比如:我们要模拟洗牌,将一副扑克牌去掉大小怪后剩下的52张打乱。

比较笨的方法是在1-52间每生成一个随机数后,检查该随机数是否出现过,如果是第一次出现,就放到序列里,否则重新生成一个随机数作检查。在 excel worksheet里面用这种办法,会造成if多层嵌套,不胜其烦,在VBA里面做简单一些,但是效率太差,越到序列的后端,效率越差。

当然也有比较好的办法,在VBA里面,将a(1)-a(52)分别赋予1-52,然后做52次循环,例如,第s次生成一个1-52间的随机数r,将a(s)与a(r)互换,这样的话,就打乱了原有序列,得到一个不重复的随机序列。

VBA里这个算法是很容易实现的,但是,出于通用性和安全考虑,有的时候我们并不希望用VBA,我们来看看在worksheet里面如何利用内置函数实现这个功能。

(1)在A1-A52间填入"=INT(RAND()*52)+1",产生1-52间的随机数,注意这里是有重复的

(2)在B1-B52间填入1-52

(3)在C54-BB54填入1-52

(4)在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$52,C$54),B1))
"。

分项解释:

a:ROW()=C$54,如果当前行等于当前交换所排的序号

b:INDEX(B$1:B$52,INDEX($A$1:$A$52,C$54)),返回在B1到B52中选择A1:A52中的第C54个值

c:IF(ROW()=INDEX($A$1:$A$52,C$54),否则的话,如果当前行等于A1:A52中第C54个值,则:

d:INDEX(B$1:B$52,C$54),返回B1:B52中的第C54个值

e:若以上条件都不满足,则返回B1

(5)将C1复制到C1:BA52这个区域里面

(6)在BA1:BA52中,我们就得到了一个不重复的随机序列,按F9可以生成一个新序列。

从别的地方 复制过来的。分享,以便自己以后用到。想原作者表示感谢。
分享到:
评论

相关推荐

    Excel生成随机数

    调用Excel中的rand()函数和randbetween()函数产生随机数。

    excel中批量设置随机数

    excel中自带随机数函数导致每次重新打开都是不同的数值,程序中利用vba可设置基数、浮动值、保留位数,批量的设置随机数。

    excel自动生成6位随机数

    =INT(RAND()*900000+100000) 直接复制到excel里就可以了。使用了excel的RAND函数。

    EXCEL随机数

    EXCEL生成随机数函数, 用来随机密码相当好用

    C++ 随机数 冒泡、快速、归并、希尔排序 排序时间

    C++ 将产生的随机数存入文件中,使用冒泡、快速、归并、希尔排序并计算排序时间,将排序时间存入excel中

    Excel公式与函数大辞典.宋翔(带书签高清文字版).pdf

    本书从函数功能、函数格式、参数说明、注意事项、Excel 版本提醒、案例应用、交叉参考7 个方面,全面、细致地介绍了Excel 2016/2013/2010/2007/2003 中公式和函数的使用方法、实际应用和操作技巧。最后3 章还将公式...

    Excel函数活用范例大辞典(全新版).何先军.2015-2(带书签高清文字版).pdf

    本书主要适用于希望快速掌握Excel函数相关知识,并使用公式和函数解决办公中实际问题的用户,适用于不同年龄段的办公人员、文秘、财务人员、公务员,尤其对刚进入职场的工作人员,在解决实际问题上有很大的指导作用...

    NPOI,c#操作excel的建议组建dll(包括详细使用手册)

    2.3.8 随机数函数 2.3.9 通过NPOI获得公式的返回值 2.4 创建图形 2.4.1 画线 2.4.2 画矩形 2.4.3 画圆形 2.4.4 画Grid 2.4.5 插入图片 2.5 打印相关设置 2.6 高级功能 2.6.1 调整表单显示比例 2.6.2 设置密码 ...

    Python基于深度学习的推荐系统,含含朴素贝叶斯、基于物品的协同过滤、关联推荐算法、CB推荐算法

    Python基于深度学习的推荐系统,含含朴素贝叶斯、基于...本项目基础算法所使用数据集均来自于excel基本的随机数生成函数生成 项目文件夹deepLearning 文件夹下存放基于深度学习tensorflow框架下的代码tensorflow_code

    《基于深度学习的推荐系统》源码(大创项目).zip

    本项目基础算法所使用数据集均来自于excel基本的随机数生成函数生成 ## 项目文件夹deepLearning ### 文件夹下存放基于深度学习tensorflow框架下的代码tensorflow_code 该目录下代码思路参考自GitHub,项目进度处于...

    数据结构各种排序算法

    注2:rand()函数生成的随机数范围在0~32767之间,为扩大该范围,可使用下面代码: randnum = (rand() ) + rand(); // 随机数范围扩大至0~231之间 (4)生成图表:对1000、8000、30000、80000、150000、300000、...

    Python基础练习文件源码.rar

    Python基础练习文件源码,里面有py文件,代码注释等等 大概有 Break退出循环语句 ...生成随机数 类型转换 素描画 读取文件 运算符 进制 阅读代码 随机数字+字母组合(指定长度) 饼图 验证收费功能

    EXCEL集成工具箱V6.0

    作了18个分类, 而在函数向导对话框中也生成100个左右新的函数,用于扩展Excel的计算功能。且所有功能都通用于 Excel 2002、2003和2007、2010。支持中英文显示与繁简体操作系统、拥有20多款华丽的皮肤界面,支持Excel...

    EXCEL集成工具箱V8.0完整增强版(精简)

    作了18个分类, 而在函数向导对话框中也生成100个左右新的函数,用于扩展Excel的计算功能。且所有功能都通用于 Excel 2002、2003和2007、2010。支持中英文显示与繁简体操作系统、拥有20多款华丽的皮肤界面,支持Excel...

    详解用python写一个抽奖程序

    生成随机数的模块random 用来读取excel表格的模块xlrd 2.思路:首先打开excel表格,然后读取其中某个单元格或者某行或某列的元素,进行输出或存储。 3.如何保证随机:随机的关键在于取随机数。每抽一个人之前,...

    python学习应用手册(上册)

    5、迭代器与生成器、常用函数总结、高阶函数 6、模块导入、自定义模块、安装第三方模块 7、文件操作、时间日期、日历、随机数、栈和队列、目录遍历 8、读写文件:txt、内存、csv、pdf、excel 9、面向对象:定义、...

    C语言算法精华

    随机数生成算法 anya Re: 伪随机数的生成算法? anya 计算并输出表达式结果 anya 计算并输出表达式结果2 anya 递归与栈溢出 anya Re: Excel 规划求解问题,求助,请教!! anya Re: anya:请教一个问题 anya ...

    《MATLAB统计分析与应用:40个案例分析》源代码

    《MATLAB统计分析与应用:40个案例分析》的配套源码。 在我们的生活中,统计无处不在,大到国计民生,小到个人起居,无不与统计息息相关,在统计...第4章,生成随机数;第5章,参数估计与假设检验;第6章,Copula理

    delphi 开发经验技巧宝典源码

    0143 使用Random函数产生7个随机数 91 0144 使用DiskFree函数返回磁盘驱动器的剩余空间 91 0145 如何使用Printer函数 92 0146 使用SetPriner函数修改打印机信息 93 0147 使用BeginThread函数产生线程 94 ...

Global site tag (gtag.js) - Google Analytics