你真的會刪除單元格中的空格嗎?
今天給大家聊一下數據清理整理過程中比較常見的一個問題:刪除單元格中的空格。這個問題看似簡單,但其實有點兒復雜。它大致可以分為四種類型的小問題,接下來,咱們由淺入深,一個一個聊。
1、 正經的空格刪除
先說第1種最簡單的情況。
如下圖所示,A:B是數據源,A列是人名,B列是成績。由于A列人名的前后包含了大量空格,導致E列的函數返回錯誤值。
對于這種情況,直接查找替換,將空格替換為空白即可。
需要注意的是,這里的空格,最好是從單元格中復制一個,而不是手動輸入。后文你會了解到,空格有幾十上百種風情,而空格鍵鍵入的只是其中普通的一種~
2、身份證中的空格
說一種比較特殊的情況,刪除身份證中的空格。
如下圖所示,A列身份證號中存在空格,需要刪除。
有朋友第一反應是查找替換,但是由于身份證屬于長文本,替換后會被轉換為數值,而單元格有效保存的數值最大長度是15位,這就導致18位的身份證的后3位數值會被轉換為0.
常用的解法方法有兩個,一個是函數,文本函數返回的結果必然是文本,所以不會導致身份證號變形:
=(A2,” “,””)
另外一個還是查找替換,只不過增加了一點前戲,用格式刷強制單元格轉換為文本格式。
3、去除首尾空格
有時候我們不需要把數據中全部的空格都刪除掉,而需要刪除首尾的全部空格,中間連續的空格保留一個,對此提供了一個專門的函數:TRIM。
如下圖所示,A列的數據包含了大量的空格,需要轉換為B列的樣式。
B2單元格輸入以下公式即可:
=TRIM(A2)
4、刪除系統導出的空格
上文我們說過,空格有成百上千種,空格鍵鍵入的只是其中普通的一種。
你在A2單元格輸入公式:
=(ROW(A1))
將它填充到A1:區域,就可以見到各種各樣的字符圖形,牛啊羊啊飛機啊大炮啊輪船啊漢堡啊等等,也有各種各樣的可見不可見的空格。
?飛機大炮要啥有啥,
如果你有閑,也可以用這些圖形作畫兒…
從系統導出的數據,有時候包含的空格,就不是正經的空格鍵生下來的。
對于這種,如果是可見的,你可以從中復制一個,然后查找替換。
如果查找替換失敗了,可以換用TRIM+的函數組合:
=(TRIM(A1))
,在英語中是清潔打掃的意思,它可以清理掉一部分不可見的空格。
但不管是查找替換,還是函數,都是近古時代開發出的功能了,這就導致它們解決不了很多新生代的空格。
比如,著名的零寬空白8203。8203是它的編碼,如果你的版本是2019及以上,可以使用(8203)返回該字符。
零寬空白8203就像一個幽靈,完全不可見,不但不可見,數據復制到寫字板、Word等軟件也不可見,但它真實存在的不要不要的,一樣會造成等條件查詢或統計函數無法正確計算。
如下圖所示,使用LEN函數,可以發現該函數返回的字符串長度和肉眼所見完全不同,但在編輯欄里你又發現不了任何多余的贅肉字。
對于這種情況,由于不可見字符通常出現在數據的首尾,可以使用LEFT函數查找首個字符是否返回空白。
如果LEFT函數返回結果為空白,則使用函數將它替換即可。
=(A2,LEFT($A$2),””)
同理,如果空格在尾部,可以使用函數:
=(A2,($A$2),””)
或者管它是頭是尾是左是右是男是女,二元對立多煩啊?統統一刀切了!
代碼看不全可以左右拖動..
=((A2,($A$2),””),LEFT($A$2),””)
……
有目的的刪除空格,除了以上方法之外,也可以借助 等工具處理,不過工作中并不常用,這里就不再說了,攤手,反正說多了你們也不看,多浪費啊圖片。
?案例文件下載百度網盤:
提取碼: 42rx
出處:
聲明:本站所有文章資源內容,如無特殊說明或標注,均為采集網絡資源。如若本站內容侵犯了原著者的合法權益,可聯系本站刪除。