在 Excel 中要從字串裡移除標點符號、又不想寫公式,最可靠的方法是:把儲存格範圍貼到一個以 Unicode 子類別來分類字元的瀏覽器型移除工具中,執行一次單趟處理,再把清理後的輸出貼回一個全新的欄位。Excel 內建的尋找與取代可以逐一清掉標點,但每個符號都得分別輸入,弧形引號很容易漏掉,而且該對話框無法分辨小數點和句號的不同用途。從客戶資料庫、問卷匯出或網路爬蟲結果取得的字串,幾乎一定會把真正的標點和看起來像標點、其實不是的東西混在一起:錢號、加號、貨幣符號、表情符號,以及偶爾被當作比較運算子使用的小於/大於符號。一個專門打造的移除工具會用到 Unicode 標點的七個子類別 — 連接符號、破折號、開頭、結尾、前引號、後引號以及其他 — 並把所有被歸類為符號的字元原封不動地留在原位,而這正是 Excel 僅靠 Ctrl+H 無法重現的行為。該頁面針對兩個棘手的邊界情況提供了可選的保護機制:縮寫和所有格中位於單字內部的撇號,以及複合詞和日期範圍中的連字號,因為嚴格的刪除會把這兩種情況一併破壞掉。

remove punctuation from string excel
remove punctuation from string excel

為什麼從 Excel 字串中移除標點比想像中更困難

從客戶資料庫、問卷匯出或網路爬蟲結果拉進來的一整欄文字,幾乎從來不會以 Excel 預期的那種乾淨形式出現。儲存格裡夾帶著地址中多出來的逗號、從 Word 文件複製過來的弧形引號、當作千分位分隔符使用的句號、嵌在產品回饋中的表情符號,以及複數所有格末尾的撇號(例如 the dogs' bowls)。「remove punctuation from string excel」這個任務通常意味著:把那欄雜亂的內容清理到只剩字母、數字和有意義的分隔符,同時不破壞真正重要的部分 — 價格上的錢號、日期範圍中的連字號、don't 裡的撇號、產品評論裡的表情符號。

Excel 內建的尋找與取代可以處理最常見的符號,只要把每個符號分別輸入「尋找目標」並把「取代為」留空即可,但該對話框逼你每個字元都要跑一次,而且你無法在單次搜尋中輸入像「所有開頭標點」這類的 Unicode 子類別。弧形引號(U+2018、U+2019、U+201C、U+201D)很容易被忽略,因為它們和鍵盤上的直引號看起來幾乎一模一樣。最糟糕的是,句號和逗號在 Excel 任何儲存格中都肩負兩種截然不同的職責:9.99 是數字,但「Sept. 3」是句子;1,000 是一千,但「Smith, John」是一個名字。一刀切的搜尋取代無法分辨這些語意,所以儲存格會像丟掉句尾符號那樣、也一併丟掉小數點和千分位分隔符。

哪些算是標點(哪些應當保留)

Unicode 字元資料庫把書面字元分成幾個大類,標點自成一個類別,與符號、字母、數字和記號分開。在標點這個類別之內,標準又把它細分為七個子類別:連接標點、破折號標點、開頭標點、結尾標點、前引號標點、後引號標點以及其他標點。每一個逗號、句號、分號、冒號、問號、驚嘆號、某些情境下的連字號-minus、括號、中括號、大括號、當作分隔符使用的小於/大於符號、撇號,以及任何形式的引號,都落在這七個子類別中的某一個之內,這一點在 unicode.org 上的 Unicode 字元資料庫中可以查得到。

符號是另一個不同的類別,這正是為什麼像 Price: $19.99 + tax 這樣的字串在經過一個正確的標點移除工具後仍能存活:錢號、加號、等號、插入號、版權符號、從 ¥ 到 ₿ 的每一種貨幣符號,以及從 😀 到 🏳️ 的每一個表情符號,都被歸類為符號而非標點。一個比較粗糙、把這兩類混為一談的移除工具會造成可預見的破壞:$19.99 + tax 會塌縮成 1999 tax,一張笑臉會從社群媒體的文案中憑空消失。下表列出每個 Unicode 子類別,並說明 Remove Punctuation 工具對它做了什麼處理。

Unicode 類別範例字元處理行為
連接標點_ 底線、‿ 字元連接移除
破折號標點– 短破折號、— 長破折號、‒ 數字破折號移除;連字號切換鈕可保護複合詞與日期範圍
開頭標點( [ {移除
結尾標點) ] }移除
前引號標點" " «移除
後引號標點" " »移除
其他標點. , ; : ! ? … ·移除
符號(非標點)$ + = ^ © ¥ € ₿ 😀 🏳️完整保留

如何使用 Remove Punctuation 工具

  1. 複製需要清理的 Excel 欄或儲存格範圍。選取儲存格,按下 Ctrl+C,然後貼到 Remove Punctuation 頁面上的輸入框中。
  2. 挑選對你資料有意義的兩項保護。如果你的文字包含像 don't 或 won't 這類的縮寫,或像 Lisa's 這類的所有格,請保持撇號切換鈕開啟;如果包含像 well-known、state-of-the-art 這類的複合詞,或像 2020-2021 這類的日期範圍,請保持連字號切換鈕開啟。如果你的資料是純數字、想徹底刪除所有連字號,則把對應的保護關閉即可。
  3. 決定被移除的符號是否應留一個空格。當標點本身扮演分隔符的角色時(例如 CSV 風格清單中的逗號),請開啟空格取代;當你想要最乾淨的單行輸出(例如網址 slug 或識別碼)時,則把它關閉。
  4. 點擊 Remove punctuation。該工具會精確計算出被移除了幾個碼位,並顯示結果。這個計數可以讓你快速核對被刪掉的字元數是否正確,特別是在你懷疑存在隱形標點(例如零寬接合符或全形 CJK 記號)的時候特別有用。
  5. 複製清理後的輸出,回到 Excel,選取原本的儲存格,然後貼上。如果你想保留原本的欄位,請貼到旁邊一個新的欄位,不要直接覆蓋。

把清理後的字串套回 Excel 儲存格

貼上 — 清理 — 貼回的工作流程,和 用一個簡單步驟移除 Excel 文字中的換行符號 是同一套,而讓清理後的字串在 Excel 中乖乖聽話的收尾動作,兩者也完全相同。

  1. 選取現在放著清理後字串的那一欄。如果原本是 A 欄,請把清理後的輸出貼到 B 欄,讓來源資料保持可見以便抽樣檢查。
  2. 按下 Ctrl+H 開啟尋找與取代。找出清理過程中殘留的雙重空格,並把它取代成單一空格。該工具其實已逐行做過這項整理,但人工再檢查一次,總比日後除錯來得快。
  3. 若你的資料含有價格,請重新設定數字格式。移除標點會一併把小數點和千分位分隔符刪掉,所以 9.99 會變成 999,1,234 會變成 1234。使用選擇性貼上 → 數值把公式列的內容丟掉,再套用數字格式;或者用一個輔助欄搭配 VALUE(),讓 Excel 重新把儲存格視為數字。
  4. 若你下游的公式或樞紐分析表對空白很敏感,請用輔助欄輸入 =TRIM(A1) 來修剪每個儲存格尾端的空格。該工具不會修剪行尾,只會處理因取代而留下的連續空格,所以從 Excel 剪貼簿貼上的長字串,末端仍可能帶有一個隱形的歸位字元。
  5. 若需要處理多欄資料,請對每一個需要清理的欄位重複同一個貼上 — 清理 — 貼回循環。該頁面在單一的線性處理中最多可容納一百萬個字元,足以涵蓋數萬個平均長度的儲存格,所以瓶頸其實在 Excel 本身的複製貼上,而不是這個工具。

純刪除 vs 空格取代

第三個切換鈕是多數人最容易忽略的,但它對輸出的影響在幾乎所有真實資料集上都舉足輕重。採純刪除時,每個標點會被整個拿掉,兩側的字元會直接相連:像 "one,two,three" 這樣的字串會變成 "onetwothree"。這適合用於網址 slug、檔案名稱和程式碼識別碼;不適合用在散文和地址上。採空格取代時,每個被移除的符號會被換成一個空格,而且同一行內的連續空格會被壓縮成單一空格:"one,two,three" 會變成 "one two three"。這對散文、地址和自然語言文字很方便;對 slug 來說則略嫌浪費。

兩種模式都不會動到換行字元或定位字元,所以多行貼上的內容會保留原本的段落結構,兩種模式也不會把兩行合併在一起。取代處理是刻意逐行進行的,這也是為什麼不論標點多麼密集,三行短內容的列絕不會塌縮成一行。這條規則對它不隱瞞的限制坦誠以對:像 the dogs' bowls 這種結尾的所有格會失去撇號,因為它後面沒有任何字元可以滿足「兩側皆為字母或數字」的檢查;同樣的邏輯也適用於行尾的連字號-minus。

在 Excel 中標點移除真正派上用場的常見情境

以下是四個「從 Excel 字串中移除標點」確實是正確選擇的真實情境,以及一個它會是錯誤選擇的情境;對所有這些情境而言,具備 Unicode 感知能力的處理範圍都讓它比通用的尋找與取代更安全。

  • 清理匯入的姓名與地址。合併成單一儲存格的「Last Name, First Name」欄,經過純刪除後會變成「Last Name First Name」,因為只有逗號被刪除,前後的空格則保留下來。兩種結果都比原始內容更適合用於合併列印。
  • 在情感分析之前,先從產品評論或問卷回覆中去除標點。表情符號和貨幣符號是訊號,不是雜訊,而一個把它們當作標點來處理的移除工具,會恰好把分析所需的資訊一併刪掉。正是這種「保留符號」的行為,使得這個工具比通用的尋找取代更適合用在這種工作流上。
  • 標準化使用逗號作為欄位分隔符的 CSV 風格記錄欄位。純刪除會把分隔符整個刪掉;空格取代則會把每個逗號換成單一空格、讓詞與詞之間仍維持分隔,這正是多數下游工具所期望的結果。
  • 清理匯入的書目資料。從資料庫或 PDF 表格拉出來的字串,夾帶著弧形引號、長破折號和雜亂的括號,下游的剖析器往往會被搞得一團亂;使用七個子類別的處理範圍,可以一併移除所有形式的引號和括號,不必一個字元一個字元地慢慢處理。
  • 唯一一個不該這麼做的情境,是含有小數點的財務資料。如果你的欄位含有價格、百分比或座標值,移除標點會把 $19.99 變成 $1999,把 12.5% 變成 125。在這種情況下,使用專門打造的數字清理工具,或乾脆讓標點留在原位,才是比較安全的選擇。

如果你正在權衡各種選項,如何從 AutoCAD 文字中移除重複的行 對此有詳細介紹。