接續著上次介紹過的 removeDuplicates():移除重複資料,這次也想介紹一個在數據清理時,很基本、很簡單的一步,trimWhitespace()
,功能相近於「移除多餘空白」功能以及 TRIM 函式(延伸閱讀:裁剪空格與 TRIM)。
trimWhitespace()
會幫你移除的有這些:
喜特先生
)喜特 先 生
)另外,我常常把 removeDuplicates()
跟 trimWhitespace()
這兩個方法當組合技,放在腳本裡面一起用。
來看看怎麼操作吧!
跟 removeDuplicates()
類似,很適合的場景當然就是清理數據的時候了!
我喜歡在這種腳本的開頭、或是末端加入 trimWhitespace()
,大概像是這樣:
function dataCleaning() {
// 宣告變數;
range.trimWhitespace();
// 清理步驟一;
// 清理步驟二;
// 清理步驟三;
}
上面的意思是,腳本會先清除範圍內的多餘空白,然後進入清理步驟。
跟 removeDuplicates()
搭配也是很常見的手段,像是這樣:
function dataCleaning() {
// 宣告變數;
range.trimWhitespace();
range.removeDuplicates();
// 後續步驟...
}
要注意,裁切後的值如果是「+」或是「=」開頭,試算表會把它們當成文字,而不是算式或函式。所以假如你把「 =COUNTA(A:C) 」餵給 trimWhitespace()
,你會得到「COUNTA(A:C)」的文字,試算表不會執行這個函式喔。
一樣要注意 trimWhitespace()
只能移除靜態的資料,沒辦法移除某些函式輸出的動態資料,像是 QUERY
、IMPORTRANGE
、GOOGLEFINANCE
等函式,這時會建議搭配 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()
應該會比較有效地清理不必要的資料;如果順序反了,可能會有移除掉重複的資料後、還會有剩下的空白。
相當簡單,一起來操作看看吧!
如果你喜歡這次的文章,歡迎你透過這些方法支持我:
想要看更多文章的話,歡迎來到我的 Notion 頁面找找有沒有你需要的資源喔!
我是喜特先生,Mr. Sheet,我們下個教學見!