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

Работа с текстовыми данными в Microsoft Excel часто сталкивается с проблемой лишних пробелов — они появляются при импорте из других систем, копировании с веб-страниц или ручном вводе. Эти "невидимые" символы портят сортировку, нарушают работу формул ВПР и ПОИСКПОЗ, а иногда делают невозможным сравнение строк. Например, ячейки с визуально одинаковым текстом "Москва" и "Москва␠␠" (где ␠ — пробел) будут восприниматься как разные значения.

В этой статье мы разберём 7 способов удаления пробелов — от базовой функции СЖПРОБЕЛЫ до автоматизации через Power Query и VBA. Вы узнаете, как очистить данные без потери форматирования и почему иногда проще использовать комбинацию методов, чем искать универсальное решение. Особое внимание уделим типичным ошибкам: например, почему СЖПРОБЕЛЫ не удаляет неразрывные пробелы и как с этим бороться.

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

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

  • 🔹 Ведущие пробелы (в начале строки)
  • 🔹 Заключительные пробелы (в конце строки)
  • 🔹 Множественные пробелы между словами (оставляет только один)

Формула простая: =СЖПРОБЕЛЫ(A1). Но у неё есть критические ограничения:

  • 🚫 Не удаляет неразрывные пробелы (вставляются через Alt+0160)
  • 🚫 Не работает с пробелами внутри чисел (например, "1 000" останется без изменений)
  • 🚫 Не обрабатывает символы табуляции (Char(9)) и переводы строк (Char(10))

Пример использования:

=СЖПРОБЕЛЫ("  Привет   мир  ")

// Результат: "Привет мир"

⚠️ Внимание: Если после применения СЖПРОБЕЛЫ в ячейке остаются "невидимые" символы, проверьте коды символов через функцию =КОДСИМВ(ЛЕВСИМВ(A1)). Неразрывный пробел вернёт код 160.
📊 Какой метод удаления пробелов вы используете чаще?
Функция СЖПРОБЕЛЫ
Найти и заменить
Power Query
VBA-макрос
Другой

2. Найти и заменить: универсальный инструмент

Классический диалог Ctrl+H (Найти и заменить) справится с задачей быстрее формул, если нужно очистить весь лист или столбец. Алгоритм:

  1. Выделите диапазон ячеек (или весь лист — Ctrl+A).
  2. Нажмите Ctrl+H, в поле "Найти" введите пробел (один обычный).
  3. В поле "Заменить на" оставьте пустым.
  4. Нажмите "Заменить всё".

Для неразрывных пробелов:

  1. В поле "Найти" введите Alt+0160 (удерживайте Alt, наберите 0160 на цифровой клавиатуре).
  2. Замените на пустую строку.

☑️ Подготовка к замене пробелов

Выполнено: 0 / 4

Преимущество метода: работает со всеми типами пробелов, включая табуляции (замените ^t) и переводы строк (^l). Но есть риск:

⚠️ Внимание: Если в данных есть полезные пробелы (например, в адресах "ул. Ленина 10"), замена удалит их безвозвратно. В таких случаях лучше использовать формулы или Power Query.

3. Комбинация функций: ПОДСТАВИТЬ + СЖПРОБЕЛЫ

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

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

Здесь СИМВОЛ(160) — это неразрывный пробел. После замены на обычный пробел СЖПРОБЕЛЫ удалит все лишние.

Для полной очистки (включая табуляции и переводы строк) используйте вложенные ПОДСТАВИТЬ:

=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;СИМВОЛ(160);" ");СИМВОЛ(9);" ");СИМВОЛ(10);" "))
Символ Код Как вставить в формулу
Неразрывный пробел 160 СИМВОЛ(160)
Табуляция 9 СИМВОЛ(9)
Перевод строки 10 СИМВОЛ(10)
Обычный пробел 32 СИМВОЛ(32) или просто " "

4. Power Query: очистка больших массивов данных

Если вам нужно обработать тысячи строк с разными типами пробелов, Power Query (вкладка "Данные" → "Из таблицы/диапазона") станет лучшим решением. Алгоритм:

  1. Загрузите данные в Power Query (Данные → Из таблицы/диапазона).
  2. Выделите текстовый столбец → вкладка "Преобразование" → "Формат" → "Обрезка".
  3. Для удаления всех пробелов (включая между словами) используйте Заменить значения (замените пробел на пустую строку).
  4. Для сохранения пробелов между словами добавьте пользовательский столбец с формулой:
    =Text.Trim([Column1], " ")
  5. Нажмите "Закрыть и загрузить".

Power Query сохраняет все шаги преобразования, поэтому при обновлении исходных данных очистка повторится автоматически. Это идеально для регулярно обновляемых отчётов.

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

В Power Query выберите столбец → "Преобразование" → "Формат" → "Обрезка". Это удалит пробелы только по краям, сохранив пробелы между словами.

5. VBA-макрос: автоматизация для продвинутых пользователей

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

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

Dim rng As Range

For Each rng In Selection

If rng.Value <> "" Then

rng.Value = Replace(rng.Value, Chr(160), " ") ' Неразрывный пробел

rng.Value = Replace(rng.Value, Chr(9), " ") ' Табуляция

rng.Value = Replace(rng.Value, Chr(10), " ") ' Перевод строки

rng.Value = WorksheetFunction.Trim(rng.Value) ' Удаляем лишние пробелы

End If

Next rng

End Sub

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

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Выделите ячейки в Excel и запустите макрос (Alt+F8 → выберите УдалитьВсеПробелы → "Выполнить").
⚠️ Внимание: Макрос безвозвратно изменяет данные в выделенных ячейках. Перед запуском создайте резервную копию файла или работайте на копии листа.

6. Формулы массива: удаление пробелов в динамических диапазонах

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

=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1:A100;СИМВОЛ(160);" ");СИМВОЛ(9);" ");СИМВОЛ(10);" "))

Введите формулу в первую ячейку результата и подтвердите как формулу массива (Ctrl+Shift+Enter в старых версиях Excel или просто Enter в Excel 365).

Для Excel 365 с динамическими массивами подойдёт более лаконичный вариант:

=ОБРЕЗАТЬ(ПОДСТАВИТЬ(A1:A100;{СИМВОЛ(160);СИМВОЛ(9);СИМВОЛ(10)};" "))

7. Специальные случаи: пробелы в числах и датах

Пробелы в числах (например, "1 000 500") или датах ("01 . 01 . 2023") требуют осторожности. Здесь СЖПРОБЕЛЫ или замена пробелов приведёт к потере форматирования:

  • 🔢 Числа: Используйте =ПОДСТАВИТЬ(A1;" ":""), чтобы удалить только пробелы-разделители, но сохранить разряды. Или преобразуйте текст в число через =ЗНАЧЕН(ПОДСТАВИТЬ(A1;" ":"")).
  • 📅 Даты: Примените =ДАТАЗНАЧ(ПОДСТАВИТЬ(A1;" ":"")), чтобы конвертировать текст в формат даты.

Пример для числа с пробелами:

=ЗНАЧЕН(ПОДСТАВИТЬ("1 000 500";" ":""))

// Результат: 1000500 (числовой формат)

⚠️ Внимание: Если после удаления пробелов число отображается как дата (например, "1000500" становится "10.05.2000"), измените формат ячейки на "Общий" или "Числовой".

FAQ: Частые вопросы по удалению пробелов в Excel

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

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

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

Используйте функцию ОБРЕЗАТЬ (англ. CLEAN не подходит — она удаляет непечатаемые символы, а не пробелы). Или в Power Query выберите "Обрезка" (Trim) без замены пробелов между словами.

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

Да, используйте Найти и заменить (Ctrl+H). Для больших файлов этот метод быстрее, чем формулы. Но помните: он изменяет исходные данные без возможности отмены (кроме Ctrl+Z).

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

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

Как удалить пробелы в защищённых ячейках?

Снимите защиту с листа (Рецензирование → Снять защиту листа), очистите пробелы, затем верните защиту. Если у вас нет пароля, используйте VBA с правом администратора.