今天跟大家分享下我们如何使用Excel生成随机密码,这个密码包含字母、数字与符号。这个也是一个粉丝问到的问题。他想使用vlookup来解决,但是发现根本用不了。
他表示公司系统更新,要求所有的用户密码至少包含字母,数字与符号这3类信息,现在需要重置所有人的密码,随机生成密码后再导入到系统中,现在是一个一个的设置,公司近千人,有没有什么快速的方法。方法当然有,操作也非常的简单,下面就让我们来学习下
想用从零学习Excel,可以点击上方
一、所需函数在这里我们需要使用3个函数,都是一些比较简单的函数,非常容易理解
1.RAND函数:生成一个大于等于0小于1的小数
语法:=RAND()
这个函数是没有参数的,它生成的是一个15位的小数(与Excel的精度有关)
2. RANDBETWEEN函数:生成一个介于指定数值之间的随机整数
语法:=RANDBETWEEN(区间最小值,区间最大值)
如果我们将公式设置为:=RANDBETWEEN(10,100),函数就会返回10到100之间的一个随机整数
3.CHAR函数:返回给定数值引用的 Unicode 字符
语法:=CHAR(数值)
这个函数可以根据指定的数值来返回汉字,数值,符号等等的数据,比如在这里我们将函数设置为=CHAR(70)就会返回F这个字母
生成随机的数值非常的简单,只需使用RANDBETWEEN函数即可,关键是如何生成随机的字母与符号,这个我们需要借助CHAR函数来实现,CHAR函数的作用是获取数值对应的Unicode 字符,先跟大家简单的介绍下什么是Unicode 字符
1.什么是Unicode 字符
首先我们需要明白计算机只能识别数字,它是不能直接识别汉字、字母符号等数据的。为了解决这个问题就需要对字母字符等进行编码,Unicode就是一种常见编码的方式,俗称万国码。它几乎是将所有的语言都进行了编码,汉语当然也包含其中在excel中我们可以使用UNICHAR函数来获取对应的Unicode数值,也可以使用CHAR函数将指定的数值转换为Unicode 字符
2.如何随机生成字母与符号
想要随机生成字母与符号,就必须要知道字母与符号对应的Unicode 数值,在这里为大家整理好了
数值:65-90对应大写的英文字母
数值:97-122对应小写的英文字母
数值:42-47分别对应:乘号,加号,逗号,减号,点,左斜杠。一般密码也仅仅支持这几个字符
了解了以上的它们对应的Unicode 数值,我们就可以利用这个特性来随机的生成字母与符号了,它们的公式非常的相似,原理都是一模一样的
生成随机大写字母:=CHAr(RAND()*26 65)
生成随机小写字母:=CHAr(RAND()*26 97)
生成随机字符:=CHAr(RAND()*6 42)
跟大家简单的讲解下这个函数的原理,在CHAR如果出现小数,它会将小数舍去,仅仅保留整数部分,这样的话我们使用RAND()*26,就会获取一个0到26的随机整数
随后我们再将这个结果加上65,这个65就是第一个大写字母A对应的Unicode 数值,这样的话就会生成一个随机的大写字母,其余的2个公式也是这样的原理
乘号后面的是字符的个数,加号后面是的这一组中第一个Unicode 数值对应的数值。
三、构建随机密码最难的自动生成字母与符号已经解决了,这个随机密码的构建就非常的简单了,比如在这里我们构建一个10位的密码,其中包好3个字母与2个符号,只需要将公式设置为
=CHAr(RAND()*26 65)&CHAr(RAND()*26 65)&CHAr(RAND()*26 65)&RANDBETWEEN(11111,99999)&CHAr(RAND()*6 42)&CHAr(RAND()*6 42)
这个公式看起来虽然很长,但是理解起来却非常的简单,我们利用连接符号连接了三个CHAr(RAND()*26 65)与2个CHAr(RAND()*6 42)来生成随机的字母与符号。再利用RANDBETWEEN(11111,99999)来生成一个随机的5位数字即可
以上就是今天分享的全部内容,如果不太理解,这个公式大家直接套用即可。
我是Excel从零到一,关注我,持续分享更多Excel技巧