題 當修剪不起作用時,從Excel單元格中刪除空格的公式是什麼?


我有一個Excel數據表,我從Internet Explorer的html表中復制。一列表值似乎都在它們的末尾有一個空格,但是 Trim 不會刪除它。當我粘貼特殊值的結果 Trim 功能,它仍然有最後的空白。

可能是其他類型的空白角色 Trim 不刪除?


10
2017-12-22 02:51


起源


如果你在模式中查看它,你可以看到那裡有什麼類型的字符,什麼類型的字符沒有被刪除? - soandos
如果你做= LEN(CELL)那麼它會返回什麼? - kobaltz
出於好奇,最後一個字符的ASCII號碼是多少?使用 =CODE(RIGHT(A1,1)) (假設 A1 讓有問題的文字成為現實)。空格為32,Tab為9,新行字符為10和13。 - Hand-E-Food
@ Hand-E-Food,該功能的結果是160 - Highly Irregular
@kobaltz,= LEN(CELL)返回9.單元格值是(沒有雙引號)“010-0000”,但修剪似乎不會刪除最後一個字符。將值放在此處的複制和粘貼可能會被我的瀏覽器修改為空格,或者其他一些方法...... - Highly Irregular


答案:


角色160是一個 不間斷的空間,一個被設計成看起來像空間但仍然是這個詞的一部分的角色,迫使相鄰的詞語保持在一起。您可以將它們轉換為常規空間,然後使用trim。

假設文本在 A1, 使用:

=TRIM(SUBSTITUTE(A1, CHAR(160), " "))

16
2017-12-22 04:34



+1。 此鏈接是一個有用的參考。經常 CLEAN , TRIM 和 SUBSTITUTE 都是處理字符串所需要的 - brettdj


如果它只有一個空格,我們假設該列是A.

A1= "CELL A1 "
A2= "CELL A2 "

Then B1 would be =LEFT(A1, LEN(A1)-1)
Then B2 would be =LEFT(A2, LEN(A2)-1)

1
2017-12-22 02:58



如果那就是它,那麼修剪會起作用...... - soandos
從評論中指出,這也可以起作用。 - kobaltz
因為你很幸運可能在那裡不止一個角色,你永遠不會知道。另外,另一個答案是處理它,無論它出現在單元格的哪個位置,在任何情況下都使它成為更好的一般答案。 - soandos
除非它有像ASCII 160和ASCII 161那樣的東西。如果你知道每個字符串的長度,並且你看到它與預期的一樣,我個人認為沒有問題。我願意嘗試理解您的觀點,但這兩種解決方案在不同環境中都有其局限性。 - kobaltz
同意。我想我更喜歡其他答案,因為他確定了問題,然後解決了。你有解決類似問題的解決方案。我看到了你的觀點,+ 1。 - soandos


我建議選擇整個工作表並使用替換(Ctrl + H)用空格替換每個非中斷空間(NBSP)會更容易。這仍然在細胞末端留下空間,但避免從細胞中間移除NBSP。你仍然需要修剪,但這比TRIM(SUBSTITUTE(...))更容易。

我以為我可以使用Alt + 160進入NBSP,但它對我不起作用。我不得不使用Insert Symbol將NBSP放入一個單元格中,將其複制出來並將其放入Find what字段中。

使用Insert Symbol,NBSP是第4行下的空單元格。

如果這是一個重複的問題,您可以使用宏錄製器來保存替換。但是,編寫一個宏可能會更好,它使用FIND在任何字符串中的任何位置定位NBSP,並用空格替換它或根據其在字符串中的位置刪除它。這個宏需要循環,直到FIND失敗。


0
2017-12-22 17:48



您可以使用Alt + 0160鍵入NBSP。一到三位數字是ASCII,四位數字是unicode。 - Hand-E-Food
一旦它不起作用我就放棄了。你的評論說服我再試一次。我忘記了它只適用於筆記本電腦上的數字鍵盤位於鍵盤中間。我將嘗試記住下次我需要以這種方式輸入角色。謝謝你的提示。 - Tony Dallimore


嘗試CLEAN(x)功能 - 它可以擺脫所有guff,特別是在你有161,160等混合的地方。


0
2017-09-02 15:26