檢舉內容
裁剪空格與 TRIM

2022/10/16閱讀時間約 4 分鐘
請問 A 欄有幾個「喜特先生」?
5 個?我也覺得應該是 5 個。
可是如果我們把這範圍選起來,用資料透視表抓來一看:
嗯?怎麼會這樣?
我們把儲存格一個個點開來檢查一下,發現 A6 的「喜特先生 」塞了一個隱形的空格,所以資料透視表把「喜特先生」跟「喜特先生 」會被視為兩種不同的資料了。
不是,你這也太狡猾了吧 (╯°Д°)╯ ┻━┻
對不起,可是舉這個例子不是為了存心整大家的!
如果你的試算表是從其他檔案轉檔過來、或是你開放試算表給大家編輯、或是你從網頁複製東西貼到試算表的時候,這種小插曲或許就會發生。
你可以想像一下,如果有這樣含有空白的資料:
  • 會不會讓你的 VLOOKUP / XLOOKUP 失敗呢?
  • 會不會讓你的統計資料失準呢?
  • 會不會讓你苦心寫好的函式莫名其妙地發生錯誤呢?
以上都有可能!
所以,這次會跟大家分享怎麼移除儲存格值裡的空格,讓你的資料更乾淨

這次要討論的空格是頭尾半形有空格的狀況,例如:
「 喜特先生」、「喜特先生 」、「 喜特先生 」
如果是字跟字的中間有半形空格、或是有全形空格,就可能需要用別的方法來解決(例如使用 REGEXREPLACE、INDEX + SPLIT、REPLACE + FIND/FINDB、尋找與取代等等的),今天先不討論囉!

裁剪空格功能

  • 資料為靜態時使用
  • 使用場合:移除頭尾半形空白
步驟很簡單,選取要移除空白的範圍,點選工具列的「資料」> 「資料清除」>「裁剪空格」,點下去就做完了。

TRIM 函式

  • 動態資料、靜態資料皆可使用
  • 使用場合:移除頭尾半形空白
這函式的功能和上面的「裁剪空格」一樣,可以移除頭尾的半形空白。語法也非常單純,寫下 TRIM、把儲存格或文字放進去括號裡面就好了:
=TRIM(儲存格)
=TRIM(文字)
就這麼簡單!

Google Apps Script

這個操作在 Google Apps Script 也有。用 get 選定範圍後,用 trimWhitespace() 這個方法就可以了,也會裁掉儲存格前後的空格。
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
const range = sheet.getRange('A1:A4');
range.trimWhitespace();
寫自動化腳本的時候,我也會連著上次「三招移除重複資料」中提到的removeDuplicates() 方法一起用,像是這樣:
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
const range = sheet.getRange('A1:A4');
range.trimWhitespace().removeDuplicates();
要把兩個方法分開來寫,也當然沒問題:
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
const range = sheet.getRange('A1:A4');
range.trimWhitespace();
range.removeDuplicates();

這是我在做資料清理的時候,會連著移除重複資料(請參考:三招移除重複資料)一起完成的步驟。這樣一個小步驟,有機會讓你的資料準確度提升很多喔!
如果你喜歡這篇文章,請幫我按個愛心支持、或把它收藏起來吧!也歡迎你贊助支持我的教學,也可以在 Liker 按鈕幫我拍拍手,很謝謝你的支持!如果有任何問題或鼓勵,也都歡迎留言一下,讓我知道我還可以怎麼幫助你唷。
想要看更多文章,歡迎來到我的 Notion 頁面找找有沒有你需要的資源喔!
我是喜特先生,Mr. Sheet,我們下個教學見!
贊助支持創作者,成為他繼續創作的動力吧!
喜特先生 Mr. Sheet
喜特先生 Mr. Sheet
資料分析師、市調顧問,目前著有方格子專題「Google 試算表教學站」,分享 Google 試算表的函式、生活應用、Apps Script、基本功能以及資料分析的基本功。目標是挑戰成為最完整全中文的 Google 試算表教學品牌。
留言0
查看全部
發表第一個留言支持創作者!
{ 看過這組花括號嗎?}
閱讀時間約 9 分鐘
XLOOKUP,終於來了!
閱讀時間約 14 分鐘
已命名函式,超方便!
閱讀時間約 10 分鐘
三招移除重複資料
閱讀時間約 9 分鐘
怎麼欄列互換(轉置)?
閱讀時間約 3 分鐘
你可能也想看
領取見面禮
只要設定追蹤作者,即可享有 48小時
Premium 閱讀權限