利用RANDBETWEEN、CHAR、IF函數,隨機產生數字與字母組合字符串

之前的函數講解中,講到過RAND函數,這個函數可以產生從0到1的隨機數。在我之前的文章《RAND()函數和TIME()函數,隨機事件的偶然發生及實現的可能過程》中也詳細的講解了這個函數的使用方法。有的好學的讀者提出問題:如何在EXCEL中隨機產生字母和數字組合的序列呢?今天我們就解答這個問題。

在解答這個問題之前還是先複習一下RAND函數。這個函數將產生一個隨機數,此隨機數大於等於0,小於1,是一個小數。同時也講了這個函數的兩個利用方法:一是生成A與B之間的隨機數字(A≤隨機數

二是生成A與B之間的隨機整數(A≤隨機數

如:輸入:=INT(RAND()*9+1)生成1到10之間的隨機整數。

那麼是否可以利用這個函數解決上面的問題呢,可以,但今天我要講一個RAND函數的引申函數:即RANDBETWEEN

RANDBETWEEN函數: 返回位於兩個指定數之間的一個隨機整數。 每次計算工作表時都將返回一個新的隨機整數。語法RANDBETWEEN(bottom,top)Bottom參數: RANDBETWEEN將返回的最小整數。Top參數: RANDBETWEEN將返回的最大整數。

但需要注意的是,03版的EXCEL要進行如下的設置:點工具,加載宏,彈出加載項中把分析工具庫勾選,確定,退出,然後重啟EXCEL.

利用RANDBETWEEN、CHAR、IF函數,隨機產生數字與字母組合字符串

舉例:=RANDBETWEEN(1,100) 將返回大於等於1小於等於100的一個隨機整數(變量)。這其實就是上面RAND函數中的引申應用。

那麼如何能夠產生字母呢?這個問題在我之前的文章《CHAR函數實現將數字轉字母,結合IF()等函數實現多種實用功能》中也講到過,今天在簡單的複習一下CHAR函數。

CHAR函數:返回對應於數字代碼的字符,語法:CHAR(number)。參數:Number 是用於轉換的字符代碼,介於1~255 之間(使用當前計算機字符集中的字符)。當數字為65時=CHAR(65)結果為字母"A",數字"65~90"大寫字母(A~Z)。只要我們定義CHAR的變量範圍就可以很輕鬆的實現隨機產生字母了。

為了實現隨機產生數字和字母組合的問題,我們還要解決每個位數是填充字母還是數字的問題,這也是要用隨機事件來解決。由於各有百分之50的概率,我們不妨把百分之50作為基礎,實現這種隨機性。

到此所有的問題解決了,我們來看最後的實現方式:

先實現位數為1時的產生方案:

公式

=IF(RAND()>0.5,CHAR(RANDBETWEEN(65,90)),RANDBETWEEN(0,9))

講解:CHAR(RANDBETWEEN(65,90)) 會產生A到Z的字母,

RANDBETWEEN(0,9) 會產生0到9的數字

IF(RAND()>0.5,CHAR(RANDBETWEEN(65,90)),RANDBETWEEN(0,9))當隨機數大於0.5時會產生字母,當小於0.5時就會產生數字。

我們假設要求產生的是6位這種數字和字母的隨機字符,那麼就把上面的公式重複六次,中間用"&"連接,好看下面的公式截圖,由於受到篇幅的影響,我只做了部分的截圖:

利用RANDBETWEEN、CHAR、IF函數,隨機產生數字與字母組合字符串

下面看輸出的結果:

利用RANDBETWEEN、CHAR、IF函數,隨機產生數字與字母組合字符串

按下F9鍵刷新,看到結果在隨機的變化。

利用RANDBETWEEN、CHAR、IF函數,隨機產生數字與字母組合字符串

到此,問題圓滿的解決。


分享到:


相關文章: