Excel 文字處理函數:資料清理與格式轉換的必備工具
在 Excel 中,資料並不總是完美的。有時候你需要從一串混亂的地址中抓出「城市」,或是要把「姓」跟「名」拆開,甚至是把「產品編號」中的特定代碼提取出來。這時候,一組強大的文字處理函數就能幫你省下無數手動複製貼上的時間。
基礎擷取:LEFT, RIGHT, MID
這三個函數是文字處裡的「切割刀」,依照方向與位置來取值。
LEFT (左側擷取)
從文字的最左邊開始,抓取指定數量的字。
- 語法:
=LEFT(儲存格, 抓幾個字) - 範例:
=LEFT("台北市信義區", 3)會得到「台北市」。
RIGHT (右側擷取)
從文字的最右邊開始往前抓。
- 語法:
=RIGHT(儲存格, 抓幾個字) - 範例:
=RIGHT("0912-345-678", 3)會得到「678」。
MID (中間擷取)
從指定的起始位置開始,往後抓取特定長度。
- 語法:
=MID(儲存格, 從第幾個字開始, 抓幾個字) - 範例:若 A1 為身分證號「A123456789」,可以用
=MID(A1, 2, 1)。如果結果是1代表男性,2代表女性。
長度計算與位置搜尋:LEN, FIND
這兩個函數常配合上述的擷取函數使用,實現「動態切分」。
LEN (計算長度)
算出儲存格內總共有幾個字。
- 語法:
=LEN(儲存格)
FIND (尋找位置)
找出某個字元在文字中的「排行第幾」。
- 語法:
=FIND("找什麼", 在哪找) - 實務組合:如果你想抓出 Email 中
@之前的帳號名稱。=LEFT(A1, FIND("@", A1) - 1)先用FIND找到@的位置(假設是 6),然後讓LEFT抓前 5 個字。
合併文字:& 與 TEXTJOIN
除了拆分,有時我們需要把零散的資料拼起來。
& (連接符號)
最簡單的方法,像加號一樣使用。
- 範例:
=A1 & "-" & B1(將姓與名中間加個連字號)。
TEXTJOIN (進階連接)
如果你要合併一長串儲存格,且想自動跳過空值。
- 語法:
=TEXTJOIN(分隔符號, 是否忽略空白, 範圍1, ...) - 範例:
=TEXTJOIN(",", TRUE, A1:A10)(將 10 格內容用逗號連起來)。
取代與清理:SUBSTITUTE, TRIM
SUBSTITUTE (取代文字)
把文字中的特定部分換成新的。
- 語法:
=SUBSTITUTE(儲存格, 舊字, 新字) - 範例:
=SUBSTITUTE("02-1234-5678", "-", "")會把所有的橫線去掉,變成純數字。
TRIM (去首尾空格)
這是一個神級函數。很多時候 VLOOKUP 找不到資料是因為儲存格內有無形的「前後空格」,TRIM 能瞬間把這些多餘的空白清乾淨。
- 語法:
=TRIM(儲存格)
格式轉換:TEXT 函數
它的核心功能是:將「數字」轉換為「文字」,並同時套用你指定的「格式語法」。當你需要將數字、日期或時間與其他文字組合在一起(例如:製作自動化的報表標題)時,這個函數就非常重要。
- 語法:
=TEXT(值, "格式碼")
常見實戰應用範例
日期格式轉換
這是最常使用的功能。如果你直接用 & 合併日期,日期會變成一串看不懂的數字序號(如 45285),這時就必須用 TEXT()。
| 公式範例 | 輸出結果 | 說明 |
|---|---|---|
=TEXT(TODAY(), "yyyy/mm/dd") | 2025/12/31 | 標準日期格式 |
=TEXT(TODAY(), "aaaa") | 星期三 | 取得中文星期全稱 |
=TEXT(TODAY(), "aaa") | 週三 | 取得中文星期簡稱 |
=TEXT(TODAY(), "dddd") | Wednesday | 取得英文星期全稱 |
數字補零(流水號)
如果你希望數字固定顯示為三位數(例如將 5 顯示為 005)。
- 公式:
=TEXT(A1, "000") - 結果:如果 A1 是 5,結果會變成
"005"。
金額與千分位
將數字格式化為包含貨幣符號與千分位的文字。
- 公式:
="總金額:" & TEXT(12345, "$#,##0") - 結果:
"總金額:$12,345"
百分比轉換
- 公式:
=TEXT(0.85, "0%") - 結果:
"85%"
常用的格式代碼對照表
| 代碼 | 意義 | 範例 |
|---|---|---|
| 0 | 強制顯示數位(不足補 0) | "00.0" → 05.2 |
| # | 僅顯示有意義數字(不足不顯示) | "##.##" → 5.2 |
| yyyy | 四位數年份 | 2025 |
| mm | 兩位數月份 | 08 |
| dd | 兩位數日期 | 09 |
| am/pm | 顯示上午或下午 | 02:00 pm |
注意事項
- 結果變為文字:經由 TEXT() 轉換後的結果是「文字」而非「數字」。這意味著你無法直接對這個結果進行加減乘除運算。
- 雙引號不可少:格式代碼(如 "0.00")一定要加雙引號,否則公式會出錯。
- 語系差異:在台灣繁體中文版 Excel 中,顯示星期的代碼是 aaa 或 aaaa;如果是在英文版環境,則使用 ddd 或 dddd。
練習建議:如何清理髒資料?
當你拿到一份雜亂的資料(例如:地址混雜了郵遞區號),建議的 SOP:
- 先用
TRIM清理多餘空格。 - 尋找規律的關鍵字(如「市」、「號」),利用
FIND抓取座標。 - 利用
LEFT/MID進行切割提取。
掌握了文字函數,你就能處理高達 80% 的資料前處理工作。