相關學習推薦:
今天給大家聊一下資料清理整理過程中比較常見的一個問題:刪除單元格中的空格。這個問題看似簡單,但其實有點兒複雜。它大致可以分為四種型別的小問題,接下來,咱們由淺入深,一個一個聊。
先說第1種最簡單的情況。
如下圖所示,A:B是資料來源,A列是人名,B列是成績。由於A列人名的前後包含了大量空格,導致E列的VLOOKUP函數返回錯誤值。
對於這種情況,直接查詢替換,將空格替換為空白即可。
需要注意的是,這裡的空格,最好是從單元格中複製一個,而不是手動輸入。後文你會了解到,空格有幾十上百種風情,而空格鍵鍵入的只是其中普通的一種~
說一種比較特殊的情況,刪除身份證中的空格。
如下圖所示,A列身份證號中存在空格,需要刪除。
有朋友第一反應是查詢替換,但是由於身份證屬於長文字,替換後會被轉換為數值,而單元格有效儲存的數值最大長度是15位,這就導致18位元的身份證的後3位數值會被轉換為0.
常用的解法方法有兩個,一個是SUBSTITUTE函數,文字函數返回的結果必然是文字,所以不會導致身份證號變形:
=SUBSTITUTE(A2,」 「,」」)
另外一個還是查詢替換,只不過增加了一點前戲,用格式刷強制單元格轉換為文字格式。
有時候我們不需要把資料中全部的空格都刪除掉,而需要刪除首尾的全部空格,中間連續的空格保留一個,對此Excel提供了一個專門的函數:TRIM。
如下圖所示,A列的資料包含了大量的空格,需要轉換為B列的樣式。
B2單元格輸入以下公式即可:
=TRIM(A2)
上文我們說過,空格有成百上千種,空格鍵鍵入的只是其中普通的一種。
你在A2單元格輸入公式:
=UNICHAR(ROW(A1))
將它填充到A1:A10000區域,就可以見到各種各樣的字元圖形,牛啊羊啊飛機啊大炮啊輪船啊漢堡啊等等,也有各種各樣的可見不可見的空格。
飛機大炮要啥有啥,
如果你有閒,也可以用這些圖形作畫兒…
從系統匯出的資料,有時候包含的空格,就不是正經的空格鍵生下來的。
對於這種,如果是可見的,你可以從中複製一個,然後查詢替換。
如果查詢替換失敗了,可以換用TRIM+CLEAN的函陣列合:
=CLEAN(TRIM(A1))
CLEAN,在英語中是清潔打掃的意思,它可以清理掉一部分不可見的空格。
但不管是查詢替換,還是CLEAN函數,都是Excel近古時代開發出的功能了,這就導致它們解決不了很多新生代的空格。
比如,著名的零寬空白8203。8203是它的UNICODE編碼,如果你的Excel版本是2019及以上,可以使用UNICHAR(8203)返回該字元。
零寬空白8203就像一個幽靈,完全不可見,不但Excel不可見,資料複製到寫字板、Word等軟體也不可見,但它真實存在的不要不要的,一樣會造成VLOOKUP等條件查詢或統計函數無法正確計算。
如下圖所示,使用LEN函數,可以發現該函數返回的字串長度和肉眼所見完全不同,但在編輯列裡你又發現不了任何多餘的贅肉字。
對於這種情況,由於不可見字元通常出現在資料的首尾,可以使用LEFT函數查詢首個字元是否返回空白。
如果LEFT函數返回結果為空白,則使用SUBSTITUTE函數將它替換即可。
=SUBSTITUTE(A2,LEFT($A$2),」」)
同理,如果空格在尾部,可以使用RIGHT函數:
=SUBSTITUTE(A2,RIGHT($A$2),」」)
或者管它是頭是尾是左是右是男是女,二元對立多煩啊?統統一刀切了!
程式碼看不全可以左右拖動..
=SUBSTITUTE(SUBSTITUTE(A2,RIGHT($A$2),」」),LEFT($A$2),」」)
相關學習推薦:
以上就是五分鐘搞定刪除excel單元格空格的問題的詳細內容,更多請關注TW511.COM其它相關文章!