Как удалить неразрывные пробелы в excel

Удаление лишних пробелов функцией СЖПРОБЕЛЫ (TRIM) и формулами

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

Лечится эта проблема очень легко — специальной функцией СЖПРОБЕЛЫ (TRIM) . Она убирает все лишние пробелы, но оставляет по одному пробелу между словами:

clean-text2.png

Просто и красиво. Но есть пара нюансов.

Неразрывные пробелы не удаляются

Чайной ложкой дегтя тут представляется только невозможность удалять таким способом неразрывные пробелы. Это особый вариант пробела (внешне неотличимый от обычного), на котором не бывает переноса строки. Обычно его используют в случаях типа "г. Москва" или "Иванов И.И.", чтобы эти фразы не разбивались между строчками. В Microsoft Word такой спецсимвол вводится сочетанием клавиш Ctrl+Shift+Пробел и отображается в виде кружка, а не точки:

Неразрывный пробел

К сожалению, функция СЖПРОБЕЛЫ (TRIM) удаляет только обычные пробелы. Для удаления неразрывных нужно использовать другие функции или макросы.

Формулы для удаления начальных и концевых пробелов

Если необходимо удалить только начальные пробелы (т.е. не трогать концевые и пробелы между словами), то придется делать это хитрыми формулами, т.к. готовой функции (по аналогии с функцией LTrim в VBA) в Microsoft Excel, к сожалению, нет.

Формула для удаления лишних пробелов только слева будет выглядеть так:

Удаление лишних пробелов слева формулой

В английской версии =MID(A1;FIND(LEFT(TRIM(A1));A1);LEN(A1))

Формула для удаления лишних пробелов только справа будет чуть посложнее и должна вводиться уже как формула массива (с Ctrl+Shift+Enter):

Удаление лишних пробелов справа

В английском варианте это будет =LEFT(A1;MAX((MID(A1&REPT(" ";99);ROW(A1:A99),1);" ")*ROW(A1:A99)))

Ссылки по теме

Для удаления пробелов в начале и в конце строки можно использовать условный оператор ЕСЛИ.
До этого желательно несколько раз с помощью поиска и замены убрать двойные пробелы.

Пробел в начале строки: =ЕСЛИ(ЛЕВСИМВ(А1;1)=" ";ПРАВСИМВ(А1;ДЛСТР(А1)-1))
Пробел в конце строки: =ЕСЛИ(ПРАВСИМВ(А1;1)=" ";ЛЕВСИМВ(А1;ДЛСТР(А1)-1))

А еще так можно .
Для удаления пробелов в начале и в конце строки
можно использовать функцию =СЦЕПИТЬ(). Допустим, ячейка A1 проблемная ,у неё пробел вначале и в конце, нам это не надо.
Вставляем новый столбец и обрабатываем формулой =СЖПРОБЕЛЫ(A1), далее Выделить — Вст а вить зн а чения, теперь повторяющихся пробелов не будет, но в начале и в конце они остались.
Вставим еще один столбец, а в столбец формулу =СЦЕПИТЬ("&&";A1;"&&") , тут главное чтобы && не встречался в тексте. Опять Выделить — Вст а вить зн а чения . Теперь у нас в начале и конце строки не пробел, а дважды амперсанд+ пробел.
Далее Ctrl+F ищем &&[пробел] — заменить ничем, опять ищем [пробел]&& — заменить ничем, там где были пробелы они будут удалены вместе с амперсандами, там где пробелов не было остались наши &&
Проводим последний Поиск -замену Ctrl+F На й ти && Заменит ь ничем.

Не удобно искать лишние пробелы в чистом виде, а в сочетании с оригинальными символами это просто, мы их как бы помечаем,так можно выделять ненужные символы не только в одной ячейке, но и в массиве данных и разных столбцах. Иногда редактируемые данные не в одном столбце , а в разных. Вместо сложных вычислений первой/последней непустой ячейки, данные сначала объединяем в одну ячейку, с использованием хорошего разделителя, обрабатываем, а потом снова разделяем через "Текст по столбцам".

© Николай Павлов, Planetaexcel, 2006-2021
info@planetaexcel.ru

Использование любых материалов сайта
допускается строго с указанием прямой ссылки на источник, упоминанием
названия сайта, имени автора и неизменности исходного текста
и иллюстраций.

ИП Павлов Николай Владимирович
ИНН 633015842586
ОГРН 310633031600071

Преобразование ТЕКСТовых значений в ЧИСЛА (Часть 3. Неразрывный пробел в EXCEL)

history 25 апреля 2013 г.
    Группы статей

  • Преобразование в Числовой формат

Копировать ЧИСЛА из WORD в EXCEL приходится не так уж и редко. Чтобы избежать нежелательного переноса разрядов числа на другую строку, в WORD принято разделять разряды неразрывным пробелом (1 234 478,33). Из-за этого скопированные из WORD числа принимают текстовый формат (не обращая внимания на формат ячейки), от которого не так просто избавиться.

Рассмотрим сначала копирование из WORD в EXCEL числа 1 234 478,33, у которого разряды разделены обычными пробелами (код символа 32). Скопировав это число через Буфер обмена в ячейку с форматом Общий , получим в ячейке число, а формат ячейки изменится на Числовой . Т.е. в EXCEL при вставке значения было задействовано следующее правило: если вставляемое значение можно преобразовать в число, то вставляй его как число и меняй формат ячейки на Числовой (если разряды разделены пробелом) или оставляй формат Общий (если разряды не разделены пробелом) . Слова « вставляй его как число » можно интерпретировать в нашем случае как «избавляйся от пробелов».

Если разряды числа разделены неразрывными пробелами (код символа 160), то EXCEL никакого «правила» на этот случай не имеет – после вставки мы получим текстовое значение, с которым нельзя выполнять вычисления. Преобразовывать значения состоящее из цифр и из текстовых символов (кроме пробелов, разрыва строки, табуляции и символа абзаца) EXCEL не умеет. Это примерно тоже самое, что и ожидать, что значение 11Щ555,00 будет автоматически при вставке преобразовано в число 11555,00.

Теперь решим эту задачу. Приемы, упомянутые в статьях Часть 1. Преобразование формулами и Часть 2. Преобразование через Буфер обмена , здесь не сработают. От символа неразрывного пробела можно избавиться либо изначально в WORD, например заменив его пробелом (через CTRL + F ), либо сделать это уже в EXCEL после вставки.

  • в EXCEL выделяем диапазон ячеек, содержащих значения импортированных из WORD;
  • вызываем стандартный инструмент Найти… ( Главная/ Редактирование/ Найти и выделить/ Найти… или нажать CTRL+F );
  • открываем вкладку Заменить ;
  • в поле Найти нужно ввести код символа неразрывного пробела (визуально этот символ ничем от обычного пробела не отличается). Для этого на цифровой клавиатуре (справа, там где клавиша NumLock), удерживая клавишу ALT , ввести цифры 0160. Подробнее об этом вводе читайте в статье Ввод символов с помощью клавиши ALT .
  • поле « Заменить на » должно быть пустым;
  • нажмите « Заменить все ».

Числа будут преобразованы из текстового в числовой формат.

Конечно, можно вышеуказанного добиться и формулами, например, с помощью функции ПОДСТАВИТЬ() (См. файл примера ). =ПОДСТАВИТЬ(A1;СИМВОЛ(160);""))

Ссылка на основную публикацию