excel rand()函数的妙用——生成随机密码

用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]之间的字母

∵ 本公式来自网易博客http://blog.163.com/sysongyi/blog/static/2496740200961214137231/,本人略加修改,并添加注释
∴ 本文为原创,请支持原创,转载注明出处。

此条目发表在 Windows 实战, 邹清水 分类目录,贴了 , 标签。将固定链接加入收藏夹。

excel rand()函数的妙用——生成随机密码》有 3 条评论

  1. 去耳畔 说:

    嘿嘿,你多大了啊?这么基情?

  2. 网站的空间质量对网站优化(seo)影响很大,谷歌的排名因素中就有一项:页面访问速度

  3. joe 说:

    邹清水:太感谢你啦,正急着用这个呢,多谢分享!

发表评论

电子邮件地址不会被公开。 必填项已被标记为 *

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>