Что такое формула для удаления пробела из ячейки Excel, когда обрезка не работает?


10

У меня есть таблица данных Excel, которую я скопировал из HTML-таблицы в Internet Explorer. Кажется, что столбец значений таблицы имеет пробел в конце, но Trimне удаляет его. Когда я вставляю специальное значение результата Trimфункции, он все еще имеет пробел в конце.

Может ли быть какой-то другой символ пробела, Trimкоторый не удаляется?


1
Если вы посмотрите на это в режиме, в котором вы можете увидеть, какие символы есть, какой тип символов не удаляется?
Soandos

если вы делаете = LEN (CELL), то что это возвращает?
Кобальц

1
Из любопытства, каков номер ASCII последнего символа? Используйте =CODE(RIGHT(A1,1))(предполагая, что A1содержит проблемный текст), чтобы увидеть его. Пробел - 32, табуляция - 9, а символы новой строки - 10 и 13.
Hand-E-Food

1
@ Hand-E-Food, результат этой функции 160
Сильно нерегулярный

@kobaltz, = LEN (CELL) возвращает 9. Значение ячейки (без двойных кавычек) "010-0000", но триммер не удаляет последний символ. Копия и вставка, чтобы поместить значение здесь, могут быть изменены, чтобы быть пробелом моим браузером, или каким-либо другим способом ...
Сильно Нерегулярное

Ответы:


17

Символ 160 - это неразрывный пробел , символ, разработанный, чтобы выглядеть как пробел, но при этом оставаться частью слова, заставляя смежные слова оставаться вместе. Вы можете преобразовать их в обычные пробелы, а затем использовать обрезку.

Предполагая, что текст в A1, используйте:

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

2
+1. Эта ссылка является полезной ссылкой . Довольно часто CLEAN, TRIMи SUBSTITUTEвсе они необходимы для работы со строками
brettdj

1

Если у него только один пробел, и давайте предположим, что столбец - 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)

Если бы это было то, что было, то обрезка сработала бы ...
soandos

И, исходя из комментариев, это сработало бы так же хорошо.
Кобальц

1
Потому что тебе повезло. Там могло быть несколько персонажей, и вы никогда бы об этом не узнали. Кроме того, другой ответ имеет дело с этим независимо от того, где он находится в ячейке, что делает его гораздо лучшим общим ответом в любом случае.
Soandos

Если в нем не было что-то вроде ASCII 160 и ASCII 161. Где, как, если вы знаете длину каждой строки и видите, что она отличается от ожидаемой, лично я не вижу проблемы с этим. Я открыт, чтобы попытаться понять ваше мнение, но оба решения имеют свои ограничения в разных средах.
Кобальц

Согласовано. Думаю, мне больше нравится другой ответ, потому что он определил проблему, а затем решил ее. У вас есть решение для чего-то, что решает подобные проблемы. Я понимаю вашу точку зрения, хотя, +1.
Soandos

0

Я полагаю, что было бы проще выбрать весь лист и использовать команду «Заменить» (Ctrl + H), чтобы заменить каждый пробел без разрывов (NBSP) пробелом. Это все еще оставляет места в конце ячеек, но избегает удаления NBSP из середины ячеек. Вы все еще нуждаетесь в Trim, но это проще, чем TRIM (ЗАМЕНА (...)).

Я думал, что смогу войти в NBSP с помощью Alt + 160, но у меня это не сработало. Мне пришлось использовать Вставить символ, чтобы поместить NBSP в ячейку, скопировать его оттуда и поместить в поле Найти.

В случае вставки символа NBSP - это пустая ячейка в третьей строке под 4.

Если это повторяющаяся проблема, вы можете использовать макро-рекордер для сохранения Заменить. Однако может быть лучше написать макрос, который использует FIND для определения местоположения NBSP в любом месте любой строки и либо заменить его пробелом, либо удалить его в соответствии с его положением в строке. Этот макрос должен был бы повторяться до тех пор, пока не будет найден FIND.


Вы можете набрать NBSP с помощью Alt + 0160. Числа от одной до трех цифр - ASCII, цифры из четырех цифр - Unicode.
Hand-E-Food

Я сдался, как только это не сработало. Ваш комментарий убедил меня попробовать еще раз. Я забыл, что он работает только с цифровой клавиатурой, которая на ноутбуке находится в середине клавиатуры. Я постараюсь вспомнить, когда в следующий раз мне нужно будет ввести символ таким образом. Спасибо за быстрое
Тони Даллимор

0

Попробуйте функцию CLEAN (x) - она ​​избавится от всей этой болтовни, особенно там, где у вас есть смесь 161, 160 и т. Д.


нет, это не так. не работал с 160 точно.
Роботик
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.