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

Двойные (и более) пробелы в ячейках Excel — одна из самых распространённых проблем при работе с текстом. Они появляются при импорте данных из других источников, копировании с веб-страниц или даже после ручного ввода. Такие "невидимые" символы портят сортировку, мешают функциям поиска и могут искажать результаты формул. Например, функция СЧЁТЕСЛИ не распознаёт ячейки с лишними пробелами как идентичные, а ВПР вернёт ошибку #Н/Д.

В этой статье вы найдёте 7 проверенных методов поиска и удаления двойных пробелов — от базовых инструментов Excel до автоматизации через Power Query и VBA. Мы разберём, как работать с пробелами в начале/конце текста, между словами и даже в формулах. А для тех, кто часто сталкивается с "грязными" данными, приведём чек-лист по очистке таблиц.

Перед тем как приступить, проверьте: ваша версия Excel (2010, 2013, 2016, 2019 или Microsoft 365) поддерживает все описанные методы. Большинство способов универсальны, но для функции ТЕКСТРАЗБ и Power Query могут потребоваться обновления.

1. Поиск двойных пробелов через "Найти и заменить"

Самый быстрый способ обнаружить лишние пробелы — использовать стандартный инструмент Ctrl + H. Он подходит для одноразовой очистки небольших таблиц.

Откройте диалоговое окно Найти и заменить (вкладка Главная → Редактирование → Заменить) и в поле Найти введите два пробела подряд (нажмите клавишу пробела дважды). В поле Заменить на оставьте один пробел. Нажмите Заменить все, чтобы убрать все двойные пробелы в выделенном диапазоне.

  • Плюсы: работает во всех версиях Excel, не требует формул.
  • Минусы: не удаляет пробелы в начале/конце текста, не обрабатывает тройные+ пробелы.
  • 🔄 Альтернатива: для удаления всех пробелов (включая одиночные) используйте замену пробела на пустую строку.

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

2. Функция ПЕЧСИМВ: визуализация пробелов

Когда нужно не просто удалить, а найти и подсчитать двойные пробелы, поможет функция ПЕЧСИМВ (в английской версии — CODE). Она возвращает код символа по его позиции в тексте. Код пробела — 32.

Допустим, в ячейке A1 текст с пробелами. Введите в соседней ячейке формулу:

=ПЕЧСИМВ(ПОИСК("  ";A1))

Если функция вернёт 32, значит в тексте есть двойной пробел. Чтобы найти позицию первого двойного пробела, используйте:

=ПОИСК("  ";A1)
  • 📌 Пример: для текста "Привет мир" формула вернёт 7 (позиция второго пробела).
  • ⚠️ Ограничение: если двойных пробелов несколько, ПОИСК найдёт только первый.
  • 🔍 Совет: комбинируйте с ПОДСТАВИТЬ, чтобы заменить пробелы на видимый символ, например |.
📊 Как часто вы сталкиваетесь с лишними пробелами в Excel?
Постоянно
Иногда
Резко
Никогда

3. Удаление пробелов функциями СЖПРОБЕЛЫ и ТРИМ

Функция СЖПРОБЕЛЫ (англ. TRIM) специально создана для удаления всех лишних пробелов:

  • в начале и конце текста;
  • между словами (оставляет только по одному пробелу).

Синтаксис простой: =СЖПРОБЕЛЫ(A1). Функция вернёт текст из A1 без лишних пробелов.

В Excel 365 и Excel 2021 появилась улучшенная версия — ТЕКСТРАЗБ (англ. TEXTSPLIT). Она не только убирает пробелы, но и разделяет текст по разделителям. Пример:

=ТЕКСТРАЗБ(СЖПРОБЕЛЫ(A1);" ")
Эта комбинация сначала очищает текст от лишних пробелов, а затем разбивает его на массив слов — удобно для дальнейшего анализа.
⚠️ Внимание: СЖПРОБЕЛЫ не удаляет неразрывные пробелы (код 160), которые часто встречаются в данных из веб. Чтобы их убрать, используйте замену: =ПОДСТАВИТЬ(A1;СИМВОЛ(160);" ").
ФункцияДействиеПримерОграничения
СЖПРОБЕЛЫУдаляет лишние пробелы=СЖПРОБЕЛЫ(" Привет мир ") → "Привет мир"Не работает с неразрывными пробелами
ПОДСТАВИТЬЗаменяет двойные пробелы на одиночные=ПОДСТАВИТЬ(A1;" ":" ")Нужно повторять для 3+ пробелов
ПЕЧСИМВПроверяет код символа (32 = пробел)=ПЕЧСИМВ(ПОИСК(" ";A1)) → 32Находит только первый двойной пробел
ТЕКСТРАЗБРазбивает текст по пробелам=ТЕКСТРАЗБ(СЖПРОБЕЛЫ(A1);" ")Только в Excel 365/2021

4. Power Query: очистка больших таблиц

Если у вас тысячи строк с лишними пробелами, ручная обработка займёт часы. Power Query (вкладка Данные → Получение данных) автоматизирует процесс:

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

Для удаления всех многократных пробелов используйте цикл замены:


= Text.Replace(

Text.Replace(

Text.Replace([Column1]," "," "), // 4 пробела

" "," "), // 3 пробела

" "," ") // 2 пробела

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

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

5. VBA-скрипт для массовой обработки

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

  • все пробелы в начале/конце текста;
  • многократные пробелы между словами (оставляет по одному);
  • неразрывные пробелы (код 160).

Откройте редактор VBA (Alt + F11), вставьте новый модуль и скопируйте код:


Sub RemoveExtraSpaces()

Dim rng As Range

Dim cell As Range

Set rng = Selection 'Выделенный диапазон

For Each cell In rng

If cell.Value <> "" Then

' Замена неразрывных пробелов на обычные

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

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

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

' Замена двойных пробелов на одиночные (рекурсивно)

Do While InStr(cell.Value, " ") > 0

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

Loop

End If

Next cell

End Sub

Чтобы запустить макрос:

  1. Выделите диапазон с данными.
  2. Нажмите Alt + F8, выберите RemoveExtraSpaces и кликните Выполнить.
⚠️ Внимание: перед запуском макроса сохраните файл — изменения применяются сразу и не отменяются через Ctrl + Z. Для безопасности тестируйте скрипт на копии данных.
Как ускорить работу макроса?

Для обработки больших таблиц (100 000+ строк) отключите обновление экрана и автоматические вычисления в начале макроса:


Application.ScreenUpdating = False

Application.Calculation = xlCalculationManual

А в конце добавьте:


Application.Calculation = xlCalculationAutomatic

Application.ScreenUpdating = True

Это сократит время выполнения в 5-10 раз.

6. Проблемы с пробелами в формулах и сводных таблицах

Лишние пробелы часто ломают сводные таблицы и функции поиска. Например, если в исходных данных есть ячейки с текстом "Яблоко" и "Яблоко " (с пробелом в конце), Excel воспринимает их как разные значения. В результате:

  • В сводной таблице появится две строки вместо одной.
  • ВПР или ИНДЕКС/ПОИСКПОЗ вернут ошибку #Н/Д.
  • СЧЁТЕСЛИ посчитает значения с пробелами отдельно.

Решение — нормализовать данные перед анализом:

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

Для проверки "чистоты" данных используйте условное форматирование:

  1. Выделите диапазон → Главная → Условное форматирование → Создать правило.
  2. Выберите Использовать формулу... и введите:
    =ДЛСТР(A1)<>ДЛСТР(СЖПРОБЕЛЫ(A1))
  3. Задайте формат (например, красный фон) для ячеек с лишними пробелами.

7. Как предотвратить появление двойных пробелов

Лучше избежать проблемы, чем исправлять её. Вот 5 правил для работы с текстом в Excel:

  • 📥 Импорт данных: при загрузке из CSV/TXT используйте Power Query с шагом обрезки пробелов.
  • 🖱️ Копирование с веб: вставляйте текст через Специальная вставка → Текст, а затем применяйте СЖПРОБЕЛЫ.
  • 📊 Шаблоны: в файлах-шаблонах настройте Проверку данных (вкладка Данные) с запретом на пробелы в начале/конце.
  • 🤖 Автоматизация: если данные поступают регулярно, создайте VBA-процедуру для автоматической очистки при открытии файла.
  • 🔍 Контроль: перед важными операциями (сводные таблицы, ВПР) проверяйте данные на пробелы через ПЕЧСИМВ.

Для командной работы добавьте в файл инструкцию по вводу данных с примером:

Правильно: "Москва"

Неправильно: " Москва ", "Москва ", "М о с к в а"

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

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

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

=ПРАВСИМВ(ЛЕВСИМВ(СЖПРОБЕЛЫ(A1)))
СЖПРОБЕЛЫ удалит все лишние пробелы, а ЛЕВСИМВ/ПРАВСИМВ обрежут их с краёв. Альтернатива — регулярные выражения в Power Query.

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

Скорее всего, в тексте есть неразрывные пробелы (код 160). Используйте:

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

Или замените их вручную через Ctrl + H (в поле Найти вставьте неразрывный пробел из буфера обмена).

Как найти ячейки, где текст начинается или заканчивается пробелом?

Используйте условное форматирование с формулами:

  • Для пробела в начале: =ЛЕВСИМВ(A1)=" "
  • Для пробела в конце: =ПРАВСИМВ(A1)=" "

Или фильтруйте данные через формулу массива:

=ФИЛЬТР(A1:A100;(ЛЕВСИМВ(A1:A100)=" ") + (ПРАВСИМВ(A1:A100)=" "))

Excel 365).

Можно ли автоматически очищать пробелы при вводе данных?

Да, с помощью VBA-события Worksheet_Change. Вставьте этот код в модуль листа:


Private Sub Worksheet_Change(ByVal Target As Range)

Dim cell As Range

For Each cell In Target

If cell.Value <> "" Then

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

End If

Next cell

End Sub

Теперь при каждом изменении ячейки пробелы в начале/конце будут удаляться автоматически. Осторожно: это может конфликтовать с другими макросами.

Как удалить пробелы в формулах (например, в тексте внутри функции ЕСЛИ)?

Пробелы внутри формул — это часть синтаксиса, их нельзя удалить. Но если пробелы есть в текстовых аргументах формулы (например, =ЕСЛИ(A1=" Привет";"Да";"Нет")), исправьте формулу вручную или используйте СЖПРОБЕЛЫ для динамической очистки:

=ЕСЛИ(СЖПРОБЕЛЫ(A1)="Привет";"Да";"Нет")