trimWhitespace():裁切多餘空白

2023/11/06閱讀時間約 4 分鐘

接續著上次介紹過的 removeDuplicates():移除重複資料,這次也想介紹一個在數據清理時,很基本、很簡單的一步,trimWhitespace(),功能相近於「移除多餘空白」功能以及 TRIM 函式(延伸閱讀:裁剪空格與 TRIM)。

trimWhitespace()會幫你移除的有這些:

  • 值前後多餘的空白( 喜特先生
  • 文字中多餘的空白(喜特 先 生
  • 換行
  • Tab 空白

另外,我常常把 removeDuplicates()trimWhitespace() 這兩個方法當組合技,放在腳本裡面一起用。

來看看怎麼操作吧!




使用場景

removeDuplicates() 類似,很適合的場景當然就是清理數據的時候了!

我喜歡在這種腳本的開頭、或是末端加入 trimWhitespace(),大概像是這樣:

function dataCleaning() {

// 宣告變數;
​range.trimWhitespace();
// 清理步驟一;
// 清理步驟二;
// 清理步驟三;

}

上面的意思是,腳本會先清除範圍內的多餘空白,然後進入清理步驟。

removeDuplicates() 搭配也是很常見的手段,像是這樣:

function dataCleaning() {

// 宣告變數;
range.trimWhitespace();
​range.removeDuplicates();
// 後續步驟...

}

要注意,裁切後的值如果是「+」或是「=」開頭,試算表會把它們當成文字,而不是算式或函式。所以假如你把「 =COUNTA(A:C) 」餵給 trimWhitespace(),你會得到「COUNTA(A:C)」的文字,試算表不會執行這個函式喔。

一樣要注意 trimWhitespace() 只能移除靜態的資料,沒辦法移除某些函式輸出的動態資料,像是 QUERYIMPORTRANGEGOOGLEFINANCE 等函式,這時會建議搭配 TRIM 或是其他可以整理陣列的函式。




語法講解

trimWhitespace() 的用法相當簡單,只要定義好範圍,就可以用這個方法來去除空白。語法相當簡單,在範圍後面寫 trimWhitespace() 即可,括號裡面什麼參數都不必放。舉例:

function dataCleaning() {

const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getActiveSheet();
const range = sheet.getRange("A:E");

range.trimWhitespace();

}


如果要像剛剛用 removeDuplicates(),就會像這樣:

function dataCleaning() {

const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getActiveSheet();
const range = sheet.getRange("A:E");

range.trimWhitespace();
range.removeDuplicates();
}


我會覺得先寫 trimWhitespace()、再寫 removeDuplicates() 應該會比較有效地清理不必要的資料;如果順序反了,可能會有移除掉重複的資料後、還會有剩下的空白。

相當簡單,一起來操作看看吧!




如果你喜歡這次的文章,歡迎你透過這些方法支持我:

  • 按下愛心、按下儲存
  • 留言告訴我你的想法
  • 加入喜特先生的官方沙龍,即時看到我發布的教學
  • 付費訂閱喜特先生的官方沙龍,加入每月小額訂閱方案
  • 追蹤喜特先生的 Facebook
  • 這邊小額贊助我的創作!

想要看更多文章的話,歡迎來到我的 Notion 頁面找找有沒有你需要的資源喔!

我是喜特先生,Mr. Sheet,我們下個教學見!



4.4K會員
137內容數
簡潔,快速,有效, 讓你的日常生活、工作生產力大提升! ___ 快按「加入」,馬上追蹤所有喜特先生的更新,有 Google 試算表教學、Google Apps Script 的研究、數據分析課程的開箱,還有 Google 試算表疑難雜症的解題分享唷!💪
留言0
查看全部
發表第一個留言支持創作者!