Как убрать пробелы в словах в Excel: от простых до продвинутых методов

Почему лишние пробелы портят данные и как их обнаружить

Вы когда-нибудь сталкивались с ситуацией, когда вроде бы одинаковые данные в Excel sudden не сортируются вместе? Или функция ВПР упорно не находит совпадения, хотя вы уверены, что они есть? В 90% случаев виноваты невидимые пробелы — лишние символы, которые пользователи случайно добавляют при вводе данных. Эти "призрачные" пробелы могут быть в начале ячейки, в конце, между словами или даже неразрывными (их не видно, но они ломают все формулы).

Проблема усугубляется, когда вы импортируете данные из других источников: баз данных, веб-страниц или текстовых файлов. Например, при копировании из Word или PDF вместе с текстом часто "приезжают" непечатаемые символы, которые Excel интерпретирует как пробелы. Даже опытные аналитики иногда тратят часы на поиск ошибок, не подозревая, что виноват всего лишь один лишний символ в сотне ячеек.

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

=ДЛСТР(A1)  // возвращает 10

=ДЛСТР(СЖПРОБЕЛЫ(A1)) // возвращает 8

Разница в 2 символа означает, что в ячейке A1 есть два лишних пробела (возможно, в начале и конце).

Метод 1: Функция СЖПРОБЕЛЫ (TRIM) — базовый инструмент

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

=СЖПРОБЕЛЫ(A1)

Но у СЖПРОБЕЛЫ есть критические ограничения, о которых мало кто знает:

  • 🔹 Не удаляет неразрывные пробелы (их код — CHAR(160))
  • 🔹 Не работает с пробелами, вставленными через Alt+0160 или Alt+255
  • 🔹 Не обрабатывает табуляции (CHAR(9)) и переводы строк (CHAR(10))

Если ваши данные содержат такие "экзотические" пробелы, СЖПРОБЕЛЫ их проигнорирует. Чтобы проверить это, используйте комбинацию:

=ПОДСТАВИТЬ(СЖПРОБЕЛЫ(A1);CHAR(160);"")

Эта формула сначала применяет СЖПРОБЕЛЫ, а затем удаляет неразрывные пробелы, если они остались.

📊 Как часто вы сталкиваетесь с лишними пробелами в Excel?
Постоянно
Иногда
Рядко
Никогда

Метод 2: Комбинация ПЕЧСИМВ + ПОДСТАВИТЬ для сложных случаев

Когда СЖПРОБЕЛЫ не справляется, на помощь приходит связка ПЕЧСИМВ (CLEAN) и ПОДСТАВИТЬ (SUBSTITUTE). Этот метод удаляет все типы пробелов, включая неразрывные и непечатаемые символы. Формула выглядит так:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПЕЧСИМВ(A1);CHAR(160);"");CHAR(9);"");" ";" ")

Разберём по шагам:

  1. ПЕЧСИМВ(A1) — удаляет все непечатаемые символы (включая некоторые виды пробелов)
  2. ПОДСТАВИТЬ(..., CHAR(160), "") — убирает неразрывные пробелы
  3. ПОДСТАВИТЬ(..., CHAR(9), "") — удаляет табуляции
  4. ПОДСТАВИТЬ(..., " ", " ") — заменяет несколько обычных пробелов на один

Важно: эта формула удаляет ВСЕ пробелы между словами, оставляя только по одному. Если вам нужно сохранить несколько пробелов (например, для форматирования), используйте модифицированную версию:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПЕЧСИМВ(A1);CHAR(160);" ");CHAR(9);" ")

Метод 3: Power Query — обработка больших массивов данных

Если вам нужно очистить тысячи строк с лишними пробелами, ручное применение формул займёт часы. Здесь на помощь приходит Power Query — инструмент для трансформации данных, встроенный в Excel 2016 и новее. Он позволяет:

  • 📊 Обрабатывать миллионы строк без замедления
  • 🔄 Автоматизировать очистку при обновлении данных
  • 🛠️ Сохранять шаги трансформации для повторного использования

Алгоритм действий:

  1. Выделите ваш диапазон данных и перейдите на вкладку Данные → Из таблицы/диапазона
  2. В открывшемся редакторе Power Query выберите столбец с пробелами
  3. На вкладке Преобразование нажмите Очистка → Обрезка (удалит пробелы в начале/конце)
  4. Затем выберите Очистка → Заменить значения и введите:
ПолеЗначение
Найти (пробел)
Заменить на (пробел)
ПараметрыОтметить "Учитывать регистр" и "Совпадение всей ячейки"

Это звучит странно (заменять пробел на пробел), но такой трюк заставляет Power Query свернуть несколько пробелов в один.

Для удаления неразрывных пробелов добавьте ещё один шаг замены:

  • Найти:   (неразрывный пробел, вставляется через Alt+0160)
  • Заменить на: (обычный пробел)

Выгрузить данные в Power Query|Применить обрезку пробелов|Заменить обычные пробелы на самих себя|Удалить неразрывные пробелы|Закрыть и загрузить данные обратно-->

Метод 4: Макросы VBA для автоматизации

Если вам нужно очищать пробелы регулярно или в файлах с одинаковой структурой, имеет смысл написать простой макрос на VBA. Этот код удалит все виды пробелов во всех ячейках выделенного диапазона:

Sub УдалитьВсеПробелы()

Dim rng As Range

Dim cell As Range

Set rng = Selection

For Each cell In rng

cell.Value = WorksheetFunction.Trim(cell.Value)

cell.Value = Replace(cell.Value, Chr(160), " ")

cell.Value = Replace(cell.Value, Chr(9), " ")

cell.Value = WorksheetFunction.Substitute(cell.Value, " ", " ")

Next cell

End Sub

Как использовать:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA
  2. Вставьте код в новый модуль (Вставка → Модуль)
  3. Вернитесь в Excel, выделите нужный диапазон и запустите макрос через Вид → Макросы

Для продвинутых пользователей: если вам нужно обрабатывать только конкретные столбцы (например, с текстом), модифицируйте код так, чтобы он пропускал числовые данные:

If Not IsNumeric(cell.Value) Then

' здесь код очистки пробелов

End If

Как ускорить макрос для больших таблиц

Добавьте в начало кода строки:

Application.ScreenUpdating = False

Application.Calculation = xlCalculationManual

А в конец:

Application.ScreenUpdating = True

Application.Calculation = xlCalculationAutomatic

Это отключит обновление экрана и автоматический пересчёт формул во время выполнения макроса, что ускорит его работу в 5-10 раз.

Метод 5: Найти и заменить — быстрый способ для небольших таблиц

Если у вас небольшой набор данных (до 1000 строк), самый быстрый способ — использовать стандартную функцию Найти и заменить (Ctrl+H). Вот пошаговая инструкция для удаления всех типов пробелов:

Шаг 1: Удаляем обычные пробелы в начале/конце

  • 🔍 В поле "Найти" введите пробел ( )
  • 📝 Поле "Заменить на" оставьте пустым
  • ⚙️ Нажмите "Параметры" и выберите "Ячейка полностью совпадает с образцом"
  • 🔄 Нажмите "Заменить все"

Шаг 2: Удаляем неразрывные пробелы

  • 🔍 В поле "Найти" введите ~CHAR(160) (с тильдой!)
  • 📝 Поле "Заменить на" оставьте пустым или введите обычный пробел
  • 🔄 Нажмите "Заменить все"

Шаг 3: Свертываем несколько пробелов в один

  • 🔍 В поле "Найти" введите два пробела ( )
  • 📝 В поле "Заменить на" введите один пробел ( )
  • 🔄 Нажмите "Заменить все" несколько раз, пока Excel не сообщит, что замен не найдено
⚠️ Внимание: При использовании "Найти и заменить" для больших таблиц (10 000+ строк) Excel может зависнуть. В таких случаях лучше использовать Power Query или VBA.

Сравнение методов: какой выбрать?

Выбор метода зависит от объёма данных, типов пробелов и вашего уровня владения Excel. Вот сравнительная таблица:

Метод Типы пробелов Макс. объём данных Скорость Сложность Автоматизация
СЖПРОБЕЛЫ Обычные пробелы 10 000 строк ⚡ Быстро ⭐ Очень просто ❌ Нет
ПЕЧСИМВ+ПОДСТАВИТЬ Все типы 50 000 строк ⚡⚡ Средне ⭐⭐ Средне ❌ Нет
Power Query Все типы 1 000 000+ строк ⚡⚡⚡ Очень быстро ⭐⭐⭐ Сложно для новичков ✅ Да
VBA-макрос Все типы 1 000 000+ строк ⚡⚡⚡⚡ Мгновенно ⭐⭐⭐⭐ Требует знаний VBA ✅ Да
Найти и заменить Обычные, неразрывные 5 000 строк ⚡ Быстро ⭐ Просто ❌ Нет

Рекомендации по выбору:

  • 📌 Для разовых задач с небольшими таблицами — СЖПРОБЕЛЫ или "Найти и заменить"
  • 📌 Для регулярной очистки больших файлов — Power Query или VBA
  • 📌 Если в данных неразрывные пробелы — комбинация ПЕЧСИМВ+ПОДСТАВИТЬ или макрос
  • 📌 Для автоматизации в корпоративных отчётах — только VBA или Power Query

FAQ: Частые вопросы о пробелах в Excel

Почему после применения СЖПРОБЕЛЫ пробелы остаются?

Функция СЖПРОБЕЛЫ не удаляет неразрывные пробелы (код CHAR(160)) и символы табуляции (CHAR(9)). Используйте комбинацию с ПОДСТАВИТЬ или проверьте данные на наличие этих символов через функцию КОДСИМВ:

=КОДСИМВ(ПРАВСИМВ(A1))

Если результат — 160, в конце ячейки есть неразрывный пробел.

Как удалить пробелы только в начале ячейки, но оставить в конце?

Используйте формулу с ПРАВСИМВ и ЛЕВСИМВ:

=ПРАВСИМВ(A1;ДЛСТР(A1)-ПОИСКПРОБЕЛ(" ";A1&" ")+1)

Эта формула находит позицию первого пробела и обрезает всё, что находится слева от него.

Можно ли удалить пробелы без формул, чтобы не загружать файл?

Да, используйте Текст по столбцам:

  1. Выделите столбец с данными
  2. Перейдите в Данные → Текст по столбцам
  3. Выберите "С разделителями" → "Пробел" (снимите все галочки, кроме пробела)
  4. На шаге формата столбца выберите "Пропустить столбец" для всех, кроме первого

Этот метод разобьёт текст по пробелам и оставит только первую часть, эффективно удалив все пробелы.

Почему после очистки пробелов функция ВПР перестала работать?

Вероятно, в искомом значении или в таблице поиска остались пробелы другого типа. Проверьте:

  • Примените СЖПРОБЕЛЫ ко всем ячейкам, участвующим в ВПР
  • Используйте ПЕЧСИМВ для удаления непечатаемых символов
  • Сравните длины ячеек с помощью ДЛСТР — они должны совпадать

Если проблема остаётся, попробуйте использовать ИНДЕКС+ПОИСКПОЗ вместо ВПР — эта комбинация менее чувствительна к пробелам.

Как удалить пробелы в защищённом листе?

Если лист защищён, вы не сможете:

  • 🔹 Использовать "Найти и заменить"
  • 🔹 Запускать макросы (если не разрешено в настройках защиты)
  • 🔹 Редактировать ячейки напрямую

Решения:

  1. Снимите защиту (если знаете пароль) через Рецензирование → Снять защиту листа
  2. Скопируйте данные на новый лист и очистите пробелы там
  3. Используйте формулы в дополнительном столбце (например, =СЖПРОБЕЛЫ(A1))