2014-11-04 204 views
0

通過任何方法(導入,粘貼,...)將數據導入到excel中時我有時會遇到以下問題。在單元格的開頭,文本前面有一個額外的空間。現在我知道通常程序,即處理這個問題:無法刪除excel中的非空格空格字符

trim(cell number) 

,如果它不是一個空格字符

=TRIM(SUBSTITUTE(cell number,CHAR(160),CHAR(32))) 

但此時這兩個沒有工作。我確實嘗試了其他替代品CHAR。

而在開始的人物只是簡單的怪異。當我轉到單元格的最開始部分並嘗試刪除它時,我必須按兩次刪除鍵才能刪除一個空格!但是當我轉到單元格中的第一個字符時,只需按下一次即可。

我還可以做些什麼來消除這個奇怪的非空格空白字符?

+0

你從字符串中獲得CHAR代碼嗎? – 2014-11-04 18:19:04

+0

我試過了。我使用ROW()將每個ASCII字符顯示爲255,然後對每個字符進行奇怪的字符測試。所有人都成了虛假的。當使用@加里的學生答案時,我得到一個字符的兩個代碼。 – user1181337 2014-11-04 18:47:43

+0

是的。我的猜測是你有一個CRLF。您是否嘗試過'CLEAN'功能?你知道VBA嗎? – 2014-11-04 19:14:13

回答

0

讓我們假設A列有一些文本,其中一些單元格很好,有些文本的前面有像字符一樣的奇怪空間。所以我們想改變一些細胞,有些我們不改變。

1)在每個單元格中用一個字母創建一個列表。我決定走到H列表的右邊。因此,例如,單元格H1具有A,單元格H2具有B等等。

2)獲取我們想要編輯的單元格的長度。我已經把這個公式放在B1單元格中。

=LEN(A1) 

3)測試單元格的第一個字母。這給了我們哪個單元改變,哪個不改變。我把這個公式放在C1單元格中。

=ISNA(VLOOKUP(LEFT(A1),$H$1:$H$26,1,0)) 

4)使用RIGHT和LEN的結果改變(或不依賴於步驟3)。

=IF(B1,RIGHT(A1,B1-2),A1) 

請注意,我必須減去2個空格而不是一個?就像我說的那樣,這是一個奇怪的角色。

5)重複下一列。

1

如果單元格A1 包含不可見的垃圾字符,則必須識別他們才能刪除他們。

選擇一些細胞,然後輸入:

=IFERROR(CODE(MID($A$1,ROWS($1:1),1)),"") 

和複製下來。這會給你每個字符的CHAR代碼A1

然後你可以使用替代()刪除罪犯。

+0

對,我試圖找出它,但找不到代碼。通過使用你的方法(Thank You BTW),第一個字符是ASCII 63,它是?在牢房裏沒有可見的。然後是第二個字符,它是一個空格的ASCII 32。兩個字符爲一個空格。 – user1181337 2014-11-04 18:52:58

+0

你正在處理** unicode字符** – 2014-11-04 19:06:02

+0

那麼它看起來像你的方法返回的代碼是ASCII碼。我查找了ASCII表中的一些代碼,並且它們匹配,但不匹配unicode表。 – user1181337 2014-11-04 19:18:12

0

如果您的字符串的第一個字符合法將在集合[A-ZA-Z0-9],那麼你可以使用這個公式:

=MID(A1,MIN(SEARCH({"a";"b";"c";"d";"e";"f";"g";"h";"i";"j";"k";"l";"m";"n";"o";"p";"q";"r";"s";"t";"u";"v";"w";"x";"y";"z";0;1;2;3;4;5;6;7;8;9},A1&"abcdefghijklmnopqrstuvwxyz1234567890")),99) 

其中99長於最長的字符串可能。如果還有其他合法的起始字符,則將它們添加到數組常量和結尾的字符串中。

如果您可能需要刪除尾隨空格(char(32)),則可以將上述內容包含在TRIM函數中。