要在 Excel 中產生隨機字母,請將 CHAR 函數包在 RANDBETWEEN 函數外面,使用 ASCII 範圍 65 到 90 來產生大寫 A 到 Z,以及 97 到 122 來產生小寫 a 到 z,然後將公式拖曳到您想填入的儲存格。公式 =CHAR(RANDBETWEEN(65,90)) 會回傳一個大寫字母;將它沿著一欄往下複製即可得到一整組,或是用連字號 (&) 運算子將三個串接起來,在單一儲存格中產生像 TEX 這樣的 3 字母字串。由於這些都是即時公式,每次工作表重新計算時——包括按下 F9——字母都會重新產生,因此您應該接著使用「選擇性貼上 > 值」將結果凍結。若要產生小寫字母,請將兩個數字都改成 97 和 122。若要在同一欄中混合大小寫,請在兩個 CHAR+RANDBETWEEN 呼叫外面再巢狀一個 CHOOSE。Excel 提供三種產生隨機字母的實用方法——公式、陣列公式和 VBA 巨集——每一種在控制力與所需功夫之間有不同的取捨。

「隨機字母」在工作表中代表什麼
「隨機字母」這個詞可能隱藏了三種看起來相似、但使用工作表方式不同的任務。最簡單的是在單一儲存格中放一個隨機字母,當作填入值、教學提示,或模擬資料集中的佔位符。第二種是每列一個獨立隨機字母的整欄,出現在測試工作表、匿名化樣本、模擬種子,或每位學生得到不同起始字母的課堂練習中。第三種是固定長度的隨機字串,例如 3 到 8 個字元的代碼,常以班級代碼、一次性密碼佔位符或暫時優惠券的形式出現。
ASCII 表是每個公式方法背後的骨幹。大寫字母 A 到 Z 對應到代碼 65 到 90,小寫字母 a 到 z 對應到代碼 97 到 122,而 CHAR 函數能把代碼轉回字元。任何 CHAR + RANDBETWEEN 解法本質上都是在 1 到 26 之間選一個數字,再請 CHAR 把它翻譯成字母。VBA 的 Chr 函數、一個 26 格的查詢表,以及 Power Query,都是從不同角度達到同一組字母,但最終結果都是相同的 26 個字母。
三種常見 Excel 方法一覽
在選擇方法之前,先並列比較會有所幫助。下表比較了每種方法能產生什麼、您有多少控制力、需要多少設定功夫,以及字母是否會在每次重新計算時重新產生。
| 方法 | 輸出 | 控制力 | 所需功夫 | 重新計算時是否重產生? |
|---|---|---|---|---|
| CHAR + RANDBETWEEN 公式 | 每格一個字母,或串接而成的字串 | 中等:可選擇大寫、小寫,或用 CHOOSE 混合 | 低——只需一個公式 | 是 |
| LET + SEQUENCE 陣列公式 (Excel 365) | 整欄或固定長度字串,來自單一儲存格 | 高:可精確控制長度、大小寫與字元池大小 | 中等——需要 Excel 365 | 是 |
| 使用 Chr(Int(Rnd * 26) + 65) 的 VBA 巨集 | 任何地方:儲存格、訊息方塊、剪貼簿 | 最高:大小寫、重複、自訂字元池皆可 | 較高——必須允許巨集安全性 | 否——按需求執行 |
前兩種把邏輯保留在儲存格中可見,因此任何開啟活頁簿的人之後都能檢視並編輯。第三種則把邏輯藏在活頁簿的程式碼模組中,只在您按下按鈕時才會執行,這也是為什麼它的結果會一直保持穩定,直到您自己覆寫該儲存格為止。
使用 CHAR 與 RANDBETWEEN 建立一欄隨機字母
若要建立一欄獨立的大寫隨機字母,請在任何現代版本的 Excel 中依下列步驟操作。
- 點選欄要開始的儲存格,例如 A1。
- 輸入 =CHAR(RANDBETWEEN(65,90)) 然後按下 Enter,就會出現一個從 A 到 Z 的大寫字母。
- 抓住填滿控點——A1 右下角的小方塊——往下拖到 A10、A100,或您需要的任何列數。每一列會得到各自獨立的隨機字母。
- 若要把值凍結以免每次重新計算時更動,請選取已填滿的範圍,按 Ctrl+C,然後使用「選擇性貼上 > 值」(Alt, E, S, V, Enter) 把公式替換成純文字字母。
若要切換為小寫字母,請將公式改為 =CHAR(RANDBETWEEN(97,122))。若要在同一欄中混合大小寫,請輸入 =CHOOSE(RANDBETWEEN(1,2), CHAR(RANDBETWEEN(65,90)), CHAR(RANDBETWEEN(97,122))) 並往下複製。每次呼叫都是獨立的,所以同一個字母可能會在整欄中重複出現。
若要在單一儲存格中產生固定長度的隨機字串,請依您想要的字元數串接多個 CHAR + RANDBETWEEN 呼叫。3 個字母的代碼就變成 =CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(65,90)),在單一儲存格中產生像 "TEX" 或 "QCX" 的值。由於是獨立挑選,允許重複,因此您可能會看到 "AAB"。若要在單一字串內強制不重複,單行程式碼公式無法做到——這需要 VBA 或輔助欄。
什麼時候 VBA 巨集才是 Excel 中的對的工具
一旦您需要保證不重複的字串、只有母音的字元池,或一次寫入多個不相鄰儲存的結果,公式就會力不從心。一段簡短的 VBA 子程式就能在不拖曳任何東西的情況下處理這三種需求。以下是最簡潔的版本,能產生一個 5 個字母的大寫字串。
- 按 Alt + F11 開啟 Visual Basic 編輯器。
- 選擇「插入 > 模組」並貼上以下程式碼:Sub RandomLetters() Dim i As Long, s As String, n As Long n = 5 Randomize For i = 1 To n s = s & Chr(Int(Rnd * 26) + 65) Next i ActiveCell.Value = s End Sub
- 關閉編輯器,點選您希望字串出現的儲存格,然後按 Alt + F8,選擇 RandomLetters,再按執行。
將 Chr(Int(Rnd * 26) + 65) 改成 Chr(Int(Rnd * 26) + 97) 即可產生小寫字母;若需要更精細的控制,也可以把迴圈拆成自訂的母音或子音字元池。因為這個巨集只在您按下執行時才會跑,結果會一直保持穩定,直到您自己覆寫該儲存格——之後無論排序或篩選工作表,都不會再意外重新產生字母。
什麼時候 Excel 內建功能不是最佳工具
Excel 公式雖然強大,但對於一次性的「隨機字母」任務來說,它會帶來瀏覽器工具不會有的摩擦。首先,每次重新計算都會重新產生字母,所以只要簡單的排序、篩選,甚至只是開啟檔案,都會讓它們改變——必須使用「選擇性貼上 > 值」才能把它們鎖定。其次,控制字元池很瑣碎:沒有內建開關可以切換成「只要母音」或「字串內不重複」,所以您最後得自己串接 CHOOSE 或建立輔助欄。第三,把結果複製到聊天視窗、名牌模擬圖、給小朋友的工作表或會議議程時,都必須讀取儲存格再重新輸入,因為公式藏在字母背後。對於一個您只想讀取、複製然後繼續處理的單一隨機字母或短字串來說,以儲存格為起點的工作流程其實比任務本身要繁重。
如果您希望從公式角度做更深入的介紹,《在 Excel 中產生隨機字母與數字:完整攻略》一文將 CHAR + RANDBETWEEN 方法與數字序列搭配,並提供一個完整的 VBA 變體來處理固定長度的組合。
如何使用隨機字母產生器
隨機字母產生器是一個私密、瀏覽器為基礎的工具,只要按一下就能產生隨機字母,完全不需要把公式拖過整欄。它適用於遊戲字母、課堂提示、佔位符字串、腦力激盪種子,或任何您原本要從 Excel 儲存格中讀取的內容。請依照下列步驟:
- 輸入您想要的字母數量,從 1 到 100 都可以。
- 選擇字母大小寫:大寫、小寫或混合大小寫。
- 可選擇將字元池限制為僅母音或僅子音,並決定是否允許字母重複。
- 按「產生」來建立您的隨機字母,然後使用複製按鈕來複製結果。
一切都在您的瀏覽器中本機執行——沒有上傳、沒有帳號、沒有伺服器往返。結果是與用 CHAR + RANDBETWEEN 產生的相同字母字串,但能瞬間完成,不需要處理會被覆寫的公式或重新計算。如果您想將字串放回工作表中,請以純文字貼到任何儲存格即可;其中沒有公式,因此在排序或篩選工作表時不會重新產生。
在 Excel 與瀏覽器工具之間選擇
一條簡單的規則就能涵蓋大多數讀者。當字母需要存在於驅動其他儲存格、會被他人檢視、或需要與其他公式一起重新計算的即時工作表時,就留在 Excel。當您需要為遊戲、教學提示、佔位符、腦力激盪,或任何想複製到他處的文字行準備一次性字串時,就使用瀏覽器工具。兩者不是競爭關係;它們涵蓋同一任務的不同部分,許多讀者會同時開著兩者——Excel 處理資料集工作,隨機字母產生器處理其他一切。
若想更深入了解,請參閱《在隨機姓名挑選轉盤上停止重複》。