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

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

Лишние пробелы после слов в Microsoft Excel — одна из самых распространённых проблем при работе с текстом. Они появляются при копировании данных из веб-страниц, экспорте из других программ или ручном вводе. Казалось бы, мелочь, но эти "невидимые" символы могут серьёзно исказить результаты сортировки, фильтрации и даже формул. Например, слова "Москва" и "Москва␣␣" (с двумя пробелами) для Excel — это разные значения, хотя визуально они идентичны.

Обнаружить лишние пробелы можно несколькими способами. Самый простой — включить отображение непечатаемых символов через кнопку на вкладке Главная. Пробелы отобразятся как точки, а табуляции — как стрелки. Ещё один метод: используйте функцию ДЛСТР (или LEN в английской версии), чтобы сравнить длину ячейки до и после очистки. Если значения отличаются — в тексте есть скрытые символы.

В этой статье мы разберём 5 способов удаления пробелов — от базовых функций до автоматизации с помощью Power Query и VBA. Вы узнаете, какой метод выбрать в зависимости от объёма данных и вашего уровня владения Excel.

Способ 1: Функция TRIM (СЖПРОБЕЛЫ) — быстрое решение для большинства случаев

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

Синтаксис функции прост:

=СЖПРОБЕЛЫ(текст)

Где текст — это ссылка на ячейку или текстовая строка. Например, для очистки ячейки A2 формула будет:

=СЖПРОБЕЛЫ(A2)
  • Плюсы: не требует дополнительных настроек, работает во всех версиях Excel.
  • Минусы: не удаляет неразрывные пробелы (вставляются через Ctrl+Shift+Пробел) и пробелы внутри текста, если они разделены другими символами (например, "слово,,, слово").
  • 🔄 Альтернатива: для английской версии Excel используйте =TRIM(A2).
⚠️ Внимание: Если после применения СЖПРОБЕЛЫ пробелы остались, проверьте текст на наличие непечатаемых символов (например, табуляции или переноса строки). Их можно удалить с помощью функции ПЕЧСИМВ (см. следующий раздел).
📊 Как часто вы сталкиваетесь с лишними пробелами в Excel?
Постоянно
Иногда
Рядко
Никогда

Способ 2: Функция ПЕЧСИМВ (CLEAN) — удаление непечатаемых символов

Когда СЖПРОБЕЛЫ не справляется, на помощь приходит функция ПЕЧСИМВ (или CLEAN в английской версии). Она удаляет все непечатаемые символы, включая:

  • 📌 Неразрывные пробелы (Char(160))
  • 📌 Символы табуляции (Char(9))
  • 📌 Переносы строк (Char(10) и Char(13))

Синтаксис:

=ПЕЧСИМВ(текст)

Для максимальной очистки комбинируйте ПЕЧСИМВ и СЖПРОБЕЛЫ:

=СЖПРОБЕЛЫ(ПЕЧСИМВ(A2))
Исходный текст После СЖПРОБЕЛЫ После ПЕЧСИМВ+СЖПРОБЕЛЫ
" Москва   " " Москва " "Москва"
"Привет!   Как дела?" "Привет! Как дела?" "Привет! Как дела?"
"Текст с неразрывными пробелами" "Текст с неразрывными пробелами" "Текст с неразрывными пробелами"

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

=ПОДСТАВИТЬ(A2; " "; "")

Но будьте осторожны: это объединит слова в одну строку (например, "МоскваРоссия").

Способ 3: Power Query — обработка больших объёмов данных

Если вам нужно очистить тысячи строк, ручное применение функций займёт слишком много времени. В этом случае поможет инструмент Power Query (доступен в Excel 2016 и новее). Он позволяет автоматизировать очистку данных и сохранять шаги для повторного использования.

Пошаговая инструкция:

  1. Выделите диапазон данных и перейдите на вкладку ДанныеИз таблицы/диапазона (или Get Data → From Table/Range).
  2. В открывшемся редакторе Power Query выберите столбец с текстом → вкладка ПреобразованиеФорматОчиститьОбрезать.
  3. Затем снова выберите столбец → Заменить значения → в поле Найти введите пробел, в Заменить на — тоже пробел, но поставьте галочку С учётом регистра и Использовать подстановочные знаки. Это удалит все подряд идущие пробелы.
  4. Нажмите Закрыть и загрузить, чтобы применить изменения.
⚠️ Внимание: Power Query создаёт связанную таблицу, а не изменяет исходные данные. Если оригинальные данные обновятся, очищенную версию можно обновить одним кликом по кнопке Обновить все на вкладке Данные.

Выделить исходный диапазон|Загрузить в Power Query|Применить обрезку (Trim)|Заменить повторяющиеся пробелы|Сохранить и загрузить результат-->

Способ 4: Макрос VBA — автоматическая очистка для продвинутых пользователей

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

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

Dim rng As Range

Dim cell As Range

Set rng = Selection

For Each cell In rng

If cell.HasFormula = False Then

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

End If

Next cell

End Sub

Function CleanNonBreakingSpaces(text As String) As String

CleanNonBreakingSpaces = Replace(text, Chr(160), " ")

End Function

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

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

Этот макрос не затрагивает ячейки с формулами и сохраняет исходное форматирование. Для обработки всего листа замените Selection на ActiveSheet.UsedRange.

Что делать, если макрос не работает?

Убедитесь, что в настройках Excel разрешены макросы (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Включить все макросы). Также проверьте, не блокирует ли макросы антивирус или политики безопасности вашей организации.

Способ 5: Найти и заменить — ручная очистка без формул

Если вам нужно очистить небольшой диапазон и вы не хотите использовать формулы, воспользуйтесь стандартной функцией Найти и заменить:

  1. Выделите диапазон ячеек.
  2. Нажмите Ctrl + H, чтобы открыть окно Заменить.
  3. В поле Найти введите два пробела (нажмите пробел дважды).
  4. В поле Заменить на введите один пробел.
  5. Нажмите Заменить все.
  6. Повторяйте шаги 3–5, пока Excel не перестанет находить замены.

Для удаления пробелов в начале и конце текста:

  1. В поле Найти введите пробел + * (звёздочка — подстановочный знак для любых символов).
  2. В поле Заменить на введите * (без пробела).
  3. Поставьте галочку Учитывать регистр и Ячейка полностью.
⚠️ Внимание: Этот метод не удаляет неразрывные пробелы. Чтобы их заменить, в поле Найти вставьте неразрывный пробел (нажмите Ctrl+Shift+Пробел), а в Заменить на — обычный пробел.

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

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

Метод Подходит для Удаляет неразрывные пробелы Автоматизация Сложность
СЖПРОБЕЛЫ Небольших таблиц, одиночных ячеек ❌ Нет ❌ Нет
ПЕЧСИМВ + СЖПРОБЕЛЫ Текста с непечатаемыми символами ✅ Да ❌ Нет ⭐⭐
Power Query Больших объёмов данных, регулярной очистки ✅ Да ✅ Да ⭐⭐⭐
Макрос VBA Продвинутых пользователей, автоматизации ✅ Да ✅ Да ⭐⭐⭐⭐
Найти и заменить Быстрой правки без формул ❌ Нет (только вручную) ❌ Нет

Критическая ошибка: если вы экспортируете данные из Excel в другие системы (например, 1С или CRM), лишние пробелы могут вызвать сбои при загрузке. Всегда очищайте текст перед экспортом!

FAQ: Ответы на частые вопросы

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

Скорее всего, в тексте есть неразрывные пробелы (Char(160)) или другие непечатаемые символы. Используйте комбинацию ПЕЧСИМВ(СЖПРОБЕЛЫ(A2)) или проверьте текст на наличие скрытых символов с помощью функции КОДСИМВ.

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

Используйте формулу:

=ПСТР(A2;1;НАЙТИ(" ";A2 & " ";ДЛСТР(A2))-1)

Или воспользуйтесь функцией ЗАМЕНИТЬ с ПРАВСИМВ:

=ЕСЛИ(ПРАВСИМВ(A2)=" "; ЛЕВСИМВ(A2; ДЛСТР(A2)-1); A2)
Можно ли удалить пробелы во всём файле сразу?

Да, с помощью макроса VBA. Вставьте этот код в модуль и запустите:

Sub TrimAllSheets()

Dim ws As Worksheet

Dim rng As Range

For Each ws In ThisWorkbook.Worksheets

Set rng = ws.UsedRange

rng.Value = Application.WorksheetFunction.Trim(rng.Value)

Next ws

End Sub

⚠️ Внимание: Этот макрос обработает все листы в книге, включая скрытые. Предварительно сохраните файл!

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

При экспорте в CSV лишние пробелы могут исказить структуру файла. Чтобы избежать этого:

  1. Очистите данные с помощью Power Query или СЖПРОБЕЛЫ.
  2. Сохраните файл в формате CSV (разделители — запятые).
  3. Откройте сохранённый файл в Блокноте и проверьте наличие лишних пробелов перед запятыми.

Если пробелы остались, откройте CSV в Excel и повторите очистку.

Почему после очистки данные не сортируются правильно?

Возможные причины:

  • 🔹 В тексте остались скрытые символы (проверьте с помощью КОДСИМВ).
  • 🔹 Столбец имеет формат Текст, а не Общий (измените формат ячеек).
  • 🔹 В данных есть ведущие нули (например, "00123"), которые Excel игнорирует при сортировке как чисел.

Решение: преобразуйте данные в текстовый формат с помощью функции =ТЕКСТ(A2; "0").