Основная и досадная проблема с лишними пробелами, которая мешает их удалению вручную — пробел является невидимым символом.
Между слов лишние пробелы еще заметны по увеличивающемуся между ними расстоянию, пробел с начала строки тоже легко выявить, т.к. строка смещается от левой границы ячейки. А вот если пробел в строке идет после последнего символа, или в ячейке в принципе одни пробелы, их не видно вовсе.
О вреде лишних пробелов
Наличие лишних пробелов может помешать работе в следующих случаях:
- Требуется сравнить ячейки между собой. Это может быть как поиск повторяющихся значений внутри диапазона, так и сравнение двух списков чтобы проверить наличие схожих позиций в них;
- При построении сводных таблиц строки “схлопываются”, если являются полностью идентичными, и разница в один пробел не позволит им “схлопнуться”. Алгоритм построения сводных таблиц также сравнивает ячейки между собой;
- С помощью “ВПР” или сочетания ИНДЕКС/ПОИСКПОЗ можно “подтянуть” данные из одной таблицы в другую. Эти функции тоже сравнивают ячейки при поиске и учитывают разницу в виде пробелов.
Обычно лишние пробелы не несут никакой пользы, и популярная задача – удалить их из текста. Но удалить именно лишние, чтобы фразы не склеивались в одно слово.
Способы удаления лишних пробелов
От обычных пробелов можно избавиться тремя известными мне способами. Рассмотрим их подробнее.
С помощью процедуры “Найти и заменить”
Оговорюсь сразу — самый большой недостаток этого подхода в том, что единичные пробелы в начале и конце строк он не удалит. И если для вас они тоже лишние, вам этот вариант не подходит — смотрите варианты ниже.
Тем не менее, на многих сайтах рекомендуется этот способ. Вызвать процедуру замены сочетанием CTRL + F, вбить в поля «Найти» и «Заменить на» 2 пробела и 1 пробел соответственно и произвести замену, нажав кнопку “Заменить все”.

Важно делать это неоднократно — до тех пор, пока процедура не выведет сообщение:

Почему так? Потому что всегда есть вероятность, что между словами было 3 и более пробелов.
Функцией СЖПРОБЕЛЫ
СЖПРОБЕЛЫ — полезная функция, но она требует создания дополнительного столбца, применения функции в нем и далее удаления исходного. Формулы на её основе замечательно удаляют все пробелы, кроме единичных между словами:
- после последнего слова;
- перед первым словом;
- заменяя два и более пробела между словами на один.

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

Удалить пробелы в конце строки
Довольно гипотетическая, но все же возможная ситуация – когда нужно удалить только пробелы в конце строки, а если есть два или более пробелов подряд в середине строки, такие не удалять. Здесь снова на помощь придут регулярные выражения:
=REGEXREPLACE(A1;"\s+$";"")
Как видно, регулярное выражение заменяет пробел или несколько пробелов на пустоту, если они идут в конце строки.
Удалить пробелы в начале строки
Аналогично, если задача удалить только пробелы в начале строк, а другие лишние пробелы не трогать. Синтаксис будет чуть другим:
=REGEXREPLACE(A1;"^\s+";"")
Напомню, функции регулярных выражений не включены в Excel по умолчанию, но их поддержку можно включить с помощью некоторого кодинга на VBA. Если у вас !SEMTools, и это не потребуется. Использование функций на листе не ограничено и доступно даже в базовой бесплатной версии. Достаточно установить Excel-надстройку.
Скачайте надстройку !SEMTools и удаляйте лишние пробелы и переносы слов без сложных функций.
!SEMTools поможет решить эту и сотни других задач за пару кликов!