2025年7月29日 星期二

【Excel教學】用REPT函數輕鬆補零,讓你的編號整齊劃一

在處理資料時,我們經常會遇到需要統一格式的情況,特別是像產品編號、員工代號或文件索引等。例如,您可能希望所有的編號都是固定的長度,不足位數的在前面補上「0」。

今天,我們將透過一個常見的實例,來學習如何使用 Excel 的 REPT 函數,搭配 LEN 函數,輕鬆完成這個任務。

核心問題:如何將長短不一的代碼統一為4位數?

一位網友提出了他的問題:他已經成功從一長串的文字中(例如 OS-20161101-AN)取出了末端的代碼 AN,但他希望最終的結果能固定為4個字元,像 00AN 這樣。如果取出的代碼是 BENZ,因為已經是4位數,就不需要補零。

這個問題的核心就是:

  1. 計算出現有代碼的長度。

  2. 用目標長度(4)減去現有長度,得出需要補上幾個「0」。

  3. 產生對應數量的「0」。

  4. 將「0」和原始代碼串接起來。

這正是 REPT 函數大顯身手的地方!

步驟一:認識主角 REPT 函數

REPT 函數的功能非常單純:依照您指定的次數,重複顯示某個文字

它的語法是:
=REPT(text, number_times)

  • text: 您想要重複的文字,例如 "0" 或 "*"。

  • number_times: 您想要重複的次數。

簡單範例:

  • =REPT("0", 3) 會得到 000

  • =REPT("*", 5) 會得到 *****

  • =REPT("哈", 2) 會得到 哈哈

值得注意的是,如果重複次數是 0REPT 函數會回傳一個空字串(也就是什麼都沒有),這對我們「補零」的需求來說非常完美!

步驟二:搭配好夥伴 LEN 函數

LEN 函數用來計算一個字串的長度(字元數)。我們的邏輯是「目標長度 4 減去目前代碼的長度」,所以 LEN 函數是不可或缺的。

步驟三:實戰操作

假設我們的原始資料在 A 欄,而網友已經用公式(例如 RIGHTFIND 等組合)在 B 欄取出了所需的代碼。

AB (已取出的代碼)C (最終結果)
1原始資料代碼補零後 (目標)
2TSMC-20192010-VRVR00VR
3EXCEL-20161101-PPTPPT0PPT
4AI-20161101-ENEN00EN
5TV-20161102-AA000A
6TW-20161102-BENZBENZBENZ

現在,我們要在 C2 儲存格中輸入公式,來產生補零後的结果。

公式:

=REPT("0", 4 - LEN(B2)) & B2

公式解析:

  1. LEN(B2): 計算 B2 儲存格中 "VR" 的長度,結果是 2。

  2. 4 - LEN(B2): 用目標長度 4 減去 2,結果是 2。這就是我們要補上的 "0" 的數量。

  3. REPT("0", 2): 產生 2 個 "0",得到 "00"。

  4. & B2: 使用 & 符號將 "00" 和 B2 的內容 "VR" 串接起來,最終得到 00VR

將這個公式向下拖曳,Excel 就會自動為每一行計算:

  • 對於 A (長度1),公式會變成 REPT("0", 4-1) & "A",得到 000A

  • 對於 BENZ (長度4),公式會變成 REPT("0", 4-4) & "BENZ",因為重複次數為 0,所以得到 BENZ

進階技巧:將所有步驟合併在一個公式中

如果您不希望使用 B 欄這個輔助欄位,也可以將提取代碼的公式與 REPT 公式合併。假設提取代碼的公式是 RIGHT(A2,LEN(A2)-FIND("-",A2,FIND("-",A2)+1)),那麼完整的單一公式就會是:

=REPT("0", 4 - LEN(RIGHT(A2,LEN(A2)-FIND("-",A2,FIND("-",A2)+1)))) & RIGHT(A2,LEN(A2)-FIND("-",A2,FIND("-",A2)+1))

這個公式看起來很長,但邏輯完全相同,只是將原本參照 B2 的地方,全部換成了提取代碼的公式本身。

總結

REPT 函數雖然簡單,但與 LEN 函數結合後,就成為了資料清理與格式標準化的一大利器。下次當您需要對齊編號、補足位數時,不妨試試這個強大的組合!



沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。

【Google Apps Script教學】if 與 switch 的愛恨情仇:為何我的 switch 判斷式不如預期?

在程式設計的學習路上,流程控制是基本功中的基本功,而  if  和  switch  更是我們最常用的兩種判斷工具。然而,它們的用法與時機卻常常讓初學者感到困惑。 最近,有位網友在論壇上分享了他在訂單查詢系統中遇到的問題:他嘗試將  if  的多條件判斷寫法用在  switch ...