在處理資料時,我們經常會遇到需要統一格式的情況,特別是像產品編號、員工代號或文件索引等。例如,您可能希望所有的編號都是固定的長度,不足位數的在前面補上「0」。
今天,我們將透過一個常見的實例,來學習如何使用 Excel 的 REPT 函數,搭配 LEN 函數,輕鬆完成這個任務。
核心問題:如何將長短不一的代碼統一為4位數?
一位網友提出了他的問題:他已經成功從一長串的文字中(例如 OS-20161101-AN)取出了末端的代碼 AN,但他希望最終的結果能固定為4個字元,像 00AN 這樣。如果取出的代碼是 BENZ,因為已經是4位數,就不需要補零。
這個問題的核心就是:
計算出現有代碼的長度。
用目標長度(4)減去現有長度,得出需要補上幾個「0」。
產生對應數量的「0」。
將「0」和原始代碼串接起來。
這正是 REPT 函數大顯身手的地方!
步驟一:認識主角 REPT 函數
REPT 函數的功能非常單純:依照您指定的次數,重複顯示某個文字。
它的語法是:
=REPT(text, number_times)
text: 您想要重複的文字,例如 "0" 或 "*"。
number_times: 您想要重複的次數。
簡單範例:
=REPT("0", 3) 會得到 000
=REPT("*", 5) 會得到 *****
=REPT("哈", 2) 會得到 哈哈
值得注意的是,如果重複次數是 0,REPT 函數會回傳一個空字串(也就是什麼都沒有),這對我們「補零」的需求來說非常完美!
步驟二:搭配好夥伴 LEN 函數
LEN 函數用來計算一個字串的長度(字元數)。我們的邏輯是「目標長度 4 減去目前代碼的長度」,所以 LEN 函數是不可或缺的。
步驟三:實戰操作
假設我們的原始資料在 A 欄,而網友已經用公式(例如 RIGHT、FIND 等組合)在 B 欄取出了所需的代碼。
1 | 原始資料 | 代碼 | 補零後 (目標) |
2 | TSMC-20192010-VR | VR | 00VR |
3 | EXCEL-20161101-PPT | PPT | 0PPT |
4 | AI-20161101-EN | EN | 00EN |
5 | TV-20161102-A | A | 000A |
6 | TW-20161102-BENZ | BENZ | BENZ |
現在,我們要在 C2 儲存格中輸入公式,來產生補零後的结果。
公式:
=REPT("0", 4 - LEN(B2)) & B2
公式解析:
LEN(B2): 計算 B2 儲存格中 "VR" 的長度,結果是 2。
4 - LEN(B2): 用目標長度 4 減去 2,結果是 2。這就是我們要補上的 "0" 的數量。
REPT("0", 2): 產生 2 個 "0",得到 "00"。
& 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 函數結合後,就成為了資料清理與格式標準化的一大利器。下次當您需要對齊編號、補足位數時,不妨試試這個強大的組合!
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。