匯出的訂單常常是這個樣子:品項、門市、杯數全擠在 A 欄,還有幾筆長得一模一樣的訂單,品項前後偶爾多一格空白。
這三件事不用寫公式,「資料」選單裡都有現成的功能:分割文字、移除重複內容、修剪空白。這篇照順序操作一遍,最後比較一下什麼時候該改用 SPLIT、UNIQUE、TRIM。
先準備資料
在空白工作表的 A1 貼上下面這份,每一列都是整串文字放在同一格(這是我自己編的茶飲小訂單):
| 列 | A |
|---|---|
| 1 | 訂單 |
| 2 | 蘋果紅茶,信義,37 |
| 3 | 青茶,板橋,8 |
| 4 | 烏龍奶茶,信義,112 |
| 5 | 青茶,板橋,8 |
| 6 | 蘋果綠茶,板橋,21 |
| 7 | 蘋果紅茶,信義,37 |
整串貼進去如果就自動分成三欄,那是貼上時剛好被拆開了。想保持一格一串的話,先把 A 欄設成純文字再貼,或直接在 A2 到 A7 一格一格打。
圖:還沒分欄的原始資料,A2 到 A7 每格都是「品項,門市,杯數」。
將文字分割成多欄
- 選取
A2:A7。 - 點「資料」>「將文字分割成多欄」。
- 資料旁邊會出現一個小浮動選單,點開「分隔符號」的下拉選單,改成「逗號」。
圖:選好範圍後,從「資料」選單進入。
圖:分隔符號在選取範圍旁邊的小選單裡改。
來看看結果,A2:C7 變成三欄:
| 列 | A | B | C |
|---|---|---|---|
| 2 | 蘋果紅茶 | 信義 | 37 |
| 3 | 青茶 | 板橋 | 8 |
| 4 | 烏龍奶茶 | 信義 | 112 |
| 5 | 青茶 | 板橋 | 8 |
| 6 | 蘋果綠茶 | 板橋 | 21 |
| 7 | 蘋果紅茶 | 信義 | 37 |
原本 A 欄的整串文字被直接改掉了,不會留一份。這是選單版和公式版最大的差別,後面會再講。
官方說明提到,覺得欄位切得怪的時候,可以在「分隔符號」選單選「自動偵測」,讓試算表自己判斷。分隔符號下拉選單裡有哪些字元可選,官方頁面沒有逐項列出。
依官方說明,剛貼上資料的話,也可以從貼上的選項裡選「將文字分割成多欄」。
這個動作對應的公式是 SPLIT,語法和逐字分割的陷阱在 拆字串與合字串 有講。
移除重複內容
A2:C7 裡,「青茶,板橋,8」跟「蘋果紅茶,信義,37」各出現兩次。手動找要一列一列比,列數多了很痛苦。
- 先把
A1:C1改成標題「品項」「門市」「杯數」(A1原本的「訂單」覆蓋掉),再選取A1:C7。 - 點「資料」>「資料清理」>「移除重複內容」。
- 對話框裡確認要比對的欄位(三欄都勾),並勾選「資料有標題列」。
- 按「移除重複內容」。
圖:完整路徑要三層,展開「資料清理」才看得到。
圖:這個對話框決定「哪幾欄一樣才算重複」。
三欄都勾的話,兩組重複的列各留第一筆,剩下 4 列資料:
| 列 | A | B | C |
|---|---|---|---|
| 2 | 蘋果紅茶 | 信義 | 37 |
| 3 | 青茶 | 板橋 | 8 |
| 4 | 烏龍奶茶 | 信義 | 112 |
| 5 | 蘋果綠茶 | 板橋 | 21 |
勾的欄位會改變結果。如果只勾「品項」,同品項但不同門市的列也會被當成重複拿掉,要小心。這份示範資料每個品項都只配一個門市,所以只勾「品項」的結果也是 4 列,換成你自己的資料就會看出差別。
兩點是官方說明裡明講的:
- 字母大小寫、格式、公式不同,但值相同的儲存格,都算重複。
- 選取範圍裡的單一儲存格時,會對整個資料範圍去重複。
選單版會把重複的列從工作表上刪掉。刪掉之後想找回來,只能按「編輯」>「復原」或翻版本記錄,所以我習慣在去重複前先複製一份工作表。
對應的公式是 UNIQUE,它不動原資料,另外在旁邊列出結果,見 SORT 與 UNIQUE。兩者有個差別:選單去重不分大小寫(M014 和 m014 算重複),UNIQUE 卻是分大小寫的,同一份資料結果會不一樣。要讓公式版跟選單版一致,先用 UPPER 或 LOWER 統一大小寫再去重。
修剪空白
去重複之前還有一個坑。如果 A2 是「蘋果紅茶」,A3 是「蘋果紅茶 」(後面多一格空白),看起來一樣,試算表卻會當成兩個不同的值,去重複抓不到。
準備一份小資料,在 E1 到 E4 手打(引號只是標出空白,不用打):
| 列 | E |
|---|---|
| 1 | 品項 |
| 2 | 「 青茶 」 |
| 3 | 「青茶」 |
| 4 | 「烏龍 奶茶」 |
E2 前面有兩格空白、後面一格,E4 的「烏龍」和「奶茶」中間有兩格空白。
- 選取
E2:E4。 - 點「資料」>「資料清理」>「修剪空白」。
圖:修剪空白跟移除重複內容在同一個子選單。
官方說明寫的是會移除前後多餘的空白,以及過多的空白。照這個說法,E2 會變成「青茶」,E4 會變成「烏龍 奶茶」(中間剩一格)。
不過官方也提醒,不換行空格(網頁複製常帶進來的那種, )不會被修剪。看起來有空白但修剪沒用的話,就是碰到這個,TRIM 公式也有一樣的限制,詳情在 文字清理函式。
所以順序是:先修剪空白,再移除重複內容。修剪之後,E2 和 E3 都是「青茶」,才抓得出重複。
選單還是公式?
選單做完就是結果,公式則會一直跟著來源資料更新。
| 要做的事 | 選單 | 公式 |
|---|---|---|
| 分割 | 直接改掉原儲存格 | SPLIT,原資料留著 |
| 去重複 | 刪掉重複的列 | UNIQUE,結果另外列出 |
| 去空白 | 直接改掉原儲存格 | TRIM,結果另外列出 |
我的習慣是:一次性匯入、做完就不再更新的資料,用選單,快;資料每天會新增(例如表單回覆、匯入的表),就用公式,來源一更新結果就跟著變。
公式的寫法,以這份資料來說(請在另一個工作表貼一份還沒拆開的原始資料;前面選單版已經把 A2:C7 拆開,B2 起有資料,公式會被擋成 #REF!):
B2 起把 A2 用逗號拆成三格
=SPLIT(A2, ",")SPLIT 預設會把切出來像數字的字串轉成數字,例如 0912 會變成 912,開頭的 0 就掉了。
先用 TRIM 去空白,再用 UNIQUE 去重複
=UNIQUE(ARRAYFORMULA(TRIM(E2:E4)))第二條會得到「青茶」和「烏龍 奶茶」兩列,直接列出來,不用先動 E 欄。
動手練習
先修剪,再算不重複項目
E2:E4 放著「 青茶 」「青茶」「烏龍 奶茶」(前後與中間有多餘空白)。不用選單,用一條公式算出「修剪空白之後,有幾種不重複的品項」。
想知道整張表哪裡髒、哪些值不一致,下一篇的 資料清理建議與欄位統計資料 會用側邊欄一次看完。我是喜特先生,Mr. Sheet,我們下個教學見!
接下來可以
相關文章
查看所有文章SORT 與 UNIQUE:自動排序、自動去除重複
用 SORT 依一欄或多欄排序,用 UNIQUE 去掉重複的列,再把兩個函式套在一起,做出一份會跟著原始資料自動更新的清單。
文字清理函式參考:TRIM、CLEAN、SUBSTITUTE、PROPER 與看不見的空格
整理 TRIM、CLEAN、SUBSTITUTE、REPLACE、UPPER、LOWER、PROPER 的語法與限制,包含 TRIM 清不掉全形空格與 CHAR(160)、CLEAN 只清 ASCII 0 到 31、SUBSTITUTE 第 4 參數只換第 N 次,以及用 UNICODE 找出看不見的字元。
留言討論
共 0 則留言






