
excel 如何自动生成32位的大写字母跟数字组合的随机序列,类似于验证码的那种随机的
展开全部
RAND函数详解:
返回大于等于 0 及小于 1 的均匀分布随机实数,每次计算工作表时都将返回一个新的随机实数。
语法
RAND( )
注解
一、若要生成 a 与 b 之间的随机实数,请使用:
RAND()*(b-a)+a
二、若要得到该数为单位1的周围的数。假设数在A1,则
=A1+(RAND()-RAND())*A1
比如0.6,就会求出 0.6±0.6范围的随即数
如果要使用函数 RAND 生成一随机数,并且使之不随单元格计算而改变,可以在编辑栏中输入“=RAND()”,保持编辑状态,然后按 F9,将公式永久性地改为随机数。
用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,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(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(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(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(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(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(RAND()*25+97)))))
我们来分解这个函数,这个函数以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))))
而这个子部分又是由两个判断语句嵌套实现的,这个机制实现数字、大写字母、小写字母出现的概率相同
因为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]之间的字母
返回大于等于 0 及小于 1 的均匀分布随机实数,每次计算工作表时都将返回一个新的随机实数。
语法
RAND( )
注解
一、若要生成 a 与 b 之间的随机实数,请使用:
RAND()*(b-a)+a
二、若要得到该数为单位1的周围的数。假设数在A1,则
=A1+(RAND()-RAND())*A1
比如0.6,就会求出 0.6±0.6范围的随即数
如果要使用函数 RAND 生成一随机数,并且使之不随单元格计算而改变,可以在编辑栏中输入“=RAND()”,保持编辑状态,然后按 F9,将公式永久性地改为随机数。
用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,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(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(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(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(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(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(RAND()*25+97)))))
我们来分解这个函数,这个函数以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))))
而这个子部分又是由两个判断语句嵌套实现的,这个机制实现数字、大写字母、小写字母出现的概率相同
因为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]之间的字母
追问
额。。。能不能去掉小写字母,这个是生成32位的吗?
追答
上面是生成八位的,去掉小写字母的话就是下面这个:
=CONCATENATE(IF(INT(RAND()*3)=0,CHAR(INT(RAND()*10+48)),CHAR(INT(RAND()*25+65)),IF(INT(RAND()*3)=0,CHAR(INT(RAND()*10+48)),CHAR(INT(RAND()*25+65)),IF(INT(RAND()*3)=0,CHAR(INT(RAND()*10+48)),CHAR(INT(RAND()*25+65)),IF(INT(RAND()*3)=0,CHAR(INT(RAND()*10+48)),CHAR(INT(RAND()*25+65)),IF(INT(RAND()*3)=0,CHAR(INT(RAND()*10+48)),CHAR(INT(RAND()*25+65)),IF(INT(RAND()*3)=0,CHAR(INT(RAND()*10+48)),CHAR(INT(RAND()*25+65)),IF(INT(RAND()*3)=0,CHAR(INT(RAND()*10+48)),CHAR(INT(RAND()*25+65)),IF(INT(RAND()*3)=0,CHAR(INT(RAND()*10+48)),CHAR(INT(RAND()*25+65))) 生成32位估计函数太长了,如果要实现的估计要用宏去实现了。下面朋友的答案MID("23456789ABCDEFGHZKLMNPQRSTUVWXYZ2",RAND()*32+1,1)也ok的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |