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

2021-01-09 VBA語言專家

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

在解答這個問題之前還是先複習一下RAND函數。這個函數將產生一個隨機數,此隨機數大於等於0,小於1,是一個小數。同時也講了這個函數的兩個利用方法:一是生成A與B之間的隨機數字(A≤隨機數<B):公式=RAND()*(B-A)+A 如:輸入:=RAND()*9+1生成1到10之間的隨機數字,

二是生成A與B之間的隨機整數(A≤隨機數<B):公式=INT(RAND()*(B-A)+A)

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

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

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

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

舉例:=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位這種數字和字母的隨機字符,那麼就把上面的公式重複六次,中間用「&」連接,好看下面的公式截圖,由於受到篇幅的影響,我只做了部分的截圖:

下面看輸出的結果:

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

到此,問題圓滿的解決。

分享成果,隨喜正能量。

相關焦點

  • 隨機函數:RAND&RANDBETWEEN
    在EXCEL應用中,經常需要用到隨機生成的數值,使用Rand函數或Randbetween函數幫忙實現,舉兩個慄子:
  • 「Excel技巧」有了隨機函數rand和randbetween函數,想隨機就隨機
    今天要說的是Excel的兩個隨機函數RAND函數和RANDBETWEEN函數。別小看這兩個函數,它們雖是小函數,但有大能量。因為它們為我們隨機錄入批量數據提供了很大方便。一、Rand函數用途:用於生成0~1之間的隨機數。
  • 單片機隨機數:rand(),srand()
    srand()就是給rand()提供種子seed如果srand每次輸入的數值是一樣的,那麼每次運行產生的隨機數也是一樣的,srand(n)for(10)rand()也就是說,以一個固定的數值作為種子是一個缺點。
  • php刪除字符串兩邊的空白符:trim()、ltrim()、rtrim()
    trim()函數不但能刪除空白符,還可以刪除其它任意字符,只要你在它的第二個參數中指明了你想要刪除的那些字符即可。還有兩個和trim()函數很相近的函數,ltrim()和rtrim()。ltrim第一個字母l表示left,即它只刪除字符串左邊的空白符或其它字符。rtrim的第一個字母r表示right,即它只刪除字符串右邊的空白符或其它字符。
  • 第四篇:C語言中指針與字符串核心知識點梳理
    C語言的基本數據類型中有一個char的關鍵詞,可以存儲單個的字符。那麼,像漢字以及由多個字符組成的內容,又該如何存儲呢?這點將涉及到本文第二個核心知識點:字符串及其常規操作。重點包括:字符串處理函數、指針與字符串的關係等。
  • Python基礎知識:以實例教你學隨機數產生和字符/ASCII碼轉換操作
    實例說明使用Python語言,產生20個「a」-「z」之間的隨機字符序列。基本實現方法1使用python內置的random模塊產生隨機數,我們知道字符「a」和「z」對應的ASCII碼分別為97和122,所以對於題目要求產生「a」-「z」之間的隨機字符序列,只需使用random模塊產生97-122之間的隨機數,然後將其轉換為對應的字符即可。其中,字符轉數字的函數為ord函數,數字轉字符的函數為chr函數。
  • RAND()函數和TIME()函數,隨機事件的偶然發生及實現的可能過程
    我們先引入一個隨機函數RAND(),這個函數是產生一個隨機數,此隨機數大於等於0,小於1。是一個小數,在利用此函數時經常會用到它的兩種變形的應用,即控制了它的範圍,具體的例子如下:其一:生成A與B之間的隨機數字(A≤隨機數<B):公式=RAND()*(B-A)+A如:生成1到10之間的隨機數字,輸入:=RAND()*9+1其二:生成A與B之間的隨機整數(A≤隨機數
  • 「RAND」函數(隨機生成數值)和「求和」選項
    背景:在案例教學中經常會用到「RAND」函數,這個函數是指生成大於等於0小於1的均勻分布平均數。延伸的函數有「ROUND」函數、「INT」函數和「RANDBETWEEN」函數。「開始」菜單下的「求和」選項包含「求和、平均值、計數、最大值、最小值」等內容,我們在講解完隨機生成函數後,為大家簡單描述這幾項的使用方法。
  • 位、字節、字長的概念及利用ASC函數與WIDECHAR函數進行字符轉換
    我們知道,在Excel中有半角字符和全形字符,半角字符和全形字符的區別在於所佔的字節不同,全形字符為雙字節,半角字符為單字節,一個英文的字符佔用一個字節,而一個漢字以及漢字的標點符號、字符都佔用兩個字節。
  • 在C語言中如何高效地複製和連接字符串?
    兩個或多個字符串的連接操作的最佳複雜度和字符數量成線性關係。但是,如上所述,讓函數返回指向目標字符串的指針會導致操作的效率明顯低於最佳效率。該函數遍歷源字符串序列和目標字符串序列,並獲取指向這兩個序列末尾的指針。該指針指向函數(strncpy除外)附加到目標序列上的字符串結束符NUL('\0')處或它的後一位。
  • 從字母數字字符串中提取數字
    2.確定分解後的字符串中是否有數字。   3.確定數字在字母數字字符串中的位置。   4.計算字母數字字符串中數字的數量。   我們將分別考慮這些任務,然後將各公式整合在一起以得到最終結果。   將字母數字字符串分解為單獨的字符。請在此使用MID函數。
  • 按任意符號間隔拆分字符串的函數
    大家好,我們今日講解「VBA信息獲取與處理」教程中第十四個專題「Split函數提取數據信息的深入講解」的第二節「按任意符號間隔拆分字符串的函數」,這個專題是非常實用的知識點,希望大家能掌握利用。第二節 按任意符號間隔拆分字符串的函數在上一講中,我們講解了Split函數的基本應用,但我們很快會發現,這個函數在利用起來有一定的局限性,只能按某個字符串進行拆分,在實際的應用中,如果我們要按多個字符串進行拆分,這個函數就無能為力了,怎麼辦?我們可以擴展一下這個函數的功能。
  • Axure設計:獲取大小寫字母及數字圖形校驗碼
    作者將通過這篇案列分享,教大家使用Axure製作實現「獲取驗證包含大小寫字母與數字的隨機圖形校驗碼」。原理分析(1)圖片背景+隨機校驗碼組成圖形校驗碼(2)隨機校驗碼是由4個隨機的字母或數字組成(3)先實現獲取1位隨機校驗碼將大寫A-Y,小寫a-y,數字0-9寫入一個文本標籤中
  • 隨機數函數Rand、Randbetween實戰技巧—自動化分配監考員等技巧
    在前期講解隨機數的函數之後,好多同學留言詢問,隨機數到底怎麼使用?有沒有具體的應用案例等……今天小編結合實際情況,對隨機數的具體應用做一下具體講解。一、隨機數函數解讀。1、生成0-1之間的隨機數。2、如果要快速再次生成隨機數,只需按F9鍵即可。解讀:Rand函數沒有參數,可以生成0-1之間的隨機數,其小數位數可以精確到小數點後15位。2、1-N,N-N之間的隨機數。
  • C語言字符集由字母,數字,空格,標點和特殊字符組成
    2.每個源文件可由一個或多個函數組成。3.一個源程序不論由多少個文件組成,都有一個且只能有一個main函數,即主函數。4.源程序中可以有預處理命令(include 命令僅為其中的一種),預處理命令通常應放在源文件或源程序的最前面。
  • Matlab常用函數與常用指令大全
    logspace 產生對數間隔的向量numel 元素個數ones 產生全為1的數組rand 均勻頒隨機數和數組randn 正態分布隨機數和數組zeros 建立一個全0矩陣 colon) 等間隔向量cat 連接數組diag 對角矩陣和矩陣對角線fliplr 從左自右翻轉矩陣flipud 從上到下翻轉矩陣repmat
  • 初學者,零基礎必備的18個Excel工作表函數,易學易懂易用
    Mid函數功能:從文本字符串中指定的起始位置返回指定長度的字符。語法結構:=Mid(字符串,開始位置,長度)。Right函數功能:從一個字符串的最後一個字符開始提取指定長度的字符。語法結構:=Right(字符串,[長度])。目的:從「工號」中提取「年份」、「部門編碼」、「序列號」。
  • 如此實用的10類函數公式都不會,還敢稱Excel達人?
    在Excel中,相對於高大上的一些技巧,更為實用的其實還是一些基礎函數公式,例如:文本截取類函數Left、Mid、Right;數字類:Randbetween、Round等。一、文本截取。解讀:1、Left函數:從一個指定字符串中從工作開始返回指定個數的字符。語法結構:=Left(字符串,長度)。2、Mid函數:從一個指定字符串的指定位置開始,返回指定長度的字符。語法結構:=Mid(字符串,開始位置,字符長度)。
  • 介紹「十六進位數字符串至數值轉換」函數
    該節點位於函數/字符串/「字符串/數值轉換」下,功能是把輸入的字符串(ASCII)通過十六進位數字再轉換成數值有幾點需要注意:本文引用地址:http://www.eepw.com.cn/article/201701/337016.htm1:雖然該函數的輸入端子「string」的值可以是十六進位數、字符串(ASCII)或其他進位數,但是「string」的值流入該函數中時,先轉換成字符串(ASCII)。