Excel 全形空白怎麼移除?商品 CSV 匯入前的清理公式與檢查清單
商品資料看起來正常,平台卻一直匯入失敗,最常見的原因不是你不會用 CSV,而是資料裡混進了肉眼看不出來的空白、換行或特殊字元。這篇先處理最常見的「全形空白」和商品欄位清理。
為什麼全形空白會讓 CSV 匯入失敗?
中文輸入法常會打出全形空白,也就是看起來像普通空白、實際上卻是另一個字元的空白。平台在比對表頭、商品名稱、SKU 或分類時,可能把它當成特殊字元,造成欄位辨識不到、商品更新不到、搜尋結果異常,甚至整列匯入失敗。
最麻煩的是,它在 Excel 裡通常不明顯。你會看到一個空格,但不知道那是普通空白、全形空白,還是從網頁複製來的零寬字元。
先分清楚三種常見空白
| 類型 | 看起來 | 常出現在哪裡 | 可能造成的問題 |
|---|---|---|---|
| 普通空白 | 半形空格 | 英文、數字、SKU 中間 | 前後空白會讓 SKU 對不起來 |
| 全形空白 | 比較寬的空格 | 中文輸入法、複製貼上、社群文案 | 平台判定特殊字元或表頭錯誤 |
| 零寬字元 | 看不見 | 網頁、AI 文案、文件轉貼 | 搜尋不到、字數超限、匯入報錯 |
清理前先備份,不要直接覆蓋原檔
CSV 清理最怕越修越亂。建議先把原始檔另存一份,例如 products-original.csv 和 products-cleaning.xlsx。清理公式先放在新欄位,確認結果正確後,再複製為純文字貼回正式欄位。
Excel 公式:把全形空白換成普通空白
如果 A2 是商品名稱,可以先用這個公式把全形空白換成普通空白,再把前後空白修掉:
=TRIM(SUBSTITUTE(A2," "," "))
注意:引號中間那個看起來很寬的空格,就是全形空白。你可以從有問題的文字裡複製一個全形空白放進公式,或直接複製上面的公式測試。
Excel 公式:同時移除換行
商品標題、SKU、分類通常不應該有欄位內換行。若從網頁或文件貼過來,可能會混入換行,CSV 匯出後就讓欄位錯位。可以用這個版本:
=TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2," "," "),CHAR(10)," "),CHAR(13)," "))
CHAR(10) 和 CHAR(13) 是常見換行字元。清掉後再匯出 CSV,錯位機率會低很多。
SKU 欄位不要保留空白
SKU 是給系統辨識的,不是給人閱讀的文案。商品名稱可以保留字與字之間的普通空白,但 SKU 通常應該更乾淨。若 A2 是 SKU,可以用:
=UPPER(TRIM(SUBSTITUTE(A2," ","")))
這會把英文轉大寫、移除前後空白,並拿掉全形空白。若你的 SKU 本來允許小寫,則不要使用 UPPER。
價格欄位只留下平台接受的格式
價格欄常見問題不是全形空白,而是把顯示文案放進資料,例如 NT$1,280、1,280 元、含稅 199。大多數平台匯入時比較喜歡純數字。清理前先看平台範本要求,有些接受整數,有些接受小數,有些不能有逗號。
如果你的資料只是多了逗號,可以先用:
=SUBSTITUTE(A2,",","")
若混入幣別、文字、括號或促銷註記,就不要硬用單一公式全清,先抽 5 列人工確認規則。
Google Sheets 也可以用同樣邏輯
Google Sheets 的基本清理方式與 Excel 相近。先用新欄位產生乾淨文字,再複製結果,選擇「僅貼上值」。不要在正式欄位直接改公式,避免匯出時把公式或錯誤值帶進 CSV。
=TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2," "," "),CHAR(10)," "),CHAR(13)," "))
匯入前的五列測試
清理完成後,不要直接把 500 列商品丟回平台。先建立一個只含表頭和 5 列資料的小 CSV,其中要包含最容易出錯的資料:長商品名、含括號的商品名、促銷品、SKU、有折扣價的商品。小檔通過,再回完整檔處理。
- 表頭貼到字元檢查器,確認沒有全形空白或零寬字元。
- 抽 5 列高風險商品,先做小 CSV。
- 商品名稱欄清掉全形空白和換行。
- SKU 欄清掉前後空白、全形空白,並檢查重複值。
- 價格欄只留下平台接受的數字格式。
什麼時候該改用智能體包?
如果你只遇到一次匯入失敗,照上面的公式清理就夠了。但如果你每週都要整理多個平台的商品 CSV,或每次都要人工檢查標題、SKU、價格、活動毛利,那就不只是公式問題,而是流程問題。
這時候比較適合把常見檢查拆成幾個固定智能體:一個檢查商品標題,一個檢查 SKU 與價格欄,一個檢查 CSV 匯入前風險,一個檢查活動是否會吃掉毛利。重點不是讓 AI 亂生成文案,而是讓它照固定規則幫你抓漏。