Когда вы копируете или импортируете текстовые данные в лист Excel, электронная таблица иногда сохраняет дополнительные пробелы в дополнение к вставленному содержимому. Как правило, функция TRIM () сама по себе может удалить эти нежелательные пробелы, независимо от того, находятся ли они между словами или в начале или в конце текстовой строки. Однако в определенных ситуациях TRIM () не может выполнять эту работу.
На компьютере пробел между словами – это не пустая область, а символ – и существует более одного типа пробела. Одним из символов пробела, обычно используемым на веб-страницах, который TRIM () не удаляет, является неразрывный пробел .
Если вы импортировали или скопировали данные с веб-страниц, вы не сможете удалить лишние пробелы с помощью функции TRIM (), если они созданы неразрывными пробелами.
Неразрывные и регулярные пространства
Пробелы являются символами, и на каждый символ ссылается его кодовое значение ASCII. ASCII расшифровывается как Американский стандартный код для обмена информацией – международный стандарт для текстовых символов в компьютерных операционных средах, который создает один набор кодов для 255 различных символов и символов, используемых в компьютерных программах.
Код ASCII для неразрывного пробела – 160 . Код ASCII для обычного пробела – 32 .
Функция TRIM () может удалять только те пробелы, которые имеют код ASCII 32.
Различные типы поддерживают разные диапазоны кодов ASCII. Стандартная таблица предлагает 127 возможных значений; гарнитуры должны минимально поддерживать 127-символьную карту ASCII, чтобы считаться действительными. Но «расширенные» символы ASCII, вызываемые дополнительными кодами, часто добавляют дополнительные символы в ваши любимые шрифты. Фактически, неразрывный пробел сам по себе является расширенным символом ASCII, тогда как стандартный пробел … ну, стандарт.
Удаление неразрывных пробелов
Удалите неразрывные пробелы из строки текста, используя функции TRIM (), SUBSTITUTE () и CHAR ().
Поскольку функции SUBSTITUTE () и CHAR () вложены в функцию TRIM (), формулу необходимо вводить в таблицу, а не использовать диалоговые окна функций для ввода аргументов.
Формула, предполагая, что данные с неразрывными пробелами находятся в ячейке A1, имеет вид:
= TRIM (ПОДСТАВИТЬ (А1, СИМ (160), CHAR (32)))
Как работает формула
Каждая вложенная функция выполняет определенную задачу:
- Функция CHAR предусматривает соответствующие коды ASCII для двух разных пробелов в формуле – 160 и 32
- Функция SUBSTITUTE заменяет или заменяет все неразрывные пробелы между словами на регулярные пробелы
- Функция TRIM удаляет лишние регулярные пробелы между словами, чтобы оператор нормально отображался на листе
Учитывая логику порядка операций формул Excel, формула вызывает функцию SUBSTITUTE () и сообщает ей о замене каждого вхождения CHAR (160) – неразрывного пробела – на стандартный пробел CHAR (32), содержащийся в ячейке A1. Затем функция TRIM () удаляет стандартные пробелы из замещенной строки.
Соображения
Если TRIM () не может выполнить работу, у вас могут быть проблемы, кроме неразрывных пробелов, особенно если вы работаете с исходным материалом, отображаемым в HTML. Когда вы вставляете материал в Excel, вставьте его в виде обычного текста, чтобы убрать фоновое форматирование из строки и удалить специальное форматирование, например символы, которые отображаются в виде белого на белом – который выглядит как пробел, но нет. Проверьте также наличие встроенных вкладок, которые можно заменить, используя ту же формулу, что и выше, но заменив код ASCII 160 на 9.
SUBSTITUTE () полезен для замены любого кода ASCII любым другим.
А что делать, когда
msgbox trim(“a b c”)
выдает “a b c”, а не “abc”?