今天跟大家分享下我們如何使用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技巧
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!