Двойные (и более) пробелы в ячейках 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(позиция второго пробела). - ⚠️ Ограничение: если двойных пробелов несколько,
ПОИСКнайдёт только первый. - 🔍 Совет: комбинируйте с
ПОДСТАВИТЬ, чтобы заменить пробелы на видимый символ, например|.
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 (вкладка Данные → Получение данных) автоматизирует процесс:
- Выделите диапазон и нажмите
Данные → Из таблицы/диапазона. - В редакторе Power Query выберите столбец с текстом →
Преобразовать → Формат → Обрезка(удалит пробелы в начале/конце). - Добавьте пользовательский столбец с формулой
=Text.Replace([Column1]," "," ")(заменит двойные пробелы). - Удалите оригинальный столбец, переименуйте новый и нажмите
Закрыть и загрузить.
Для удаления всех многократных пробелов используйте цикл замены:
= 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
Чтобы запустить макрос:
- Выделите диапазон с данными.
- Нажмите
Alt + F8, выберитеRemoveExtraSpacesи кликнитеВыполнить.
⚠️ Внимание: перед запуском макроса сохраните файл — изменения применяются сразу и не отменяются через Ctrl + Z. Для безопасности тестируйте скрипт на копии данных.
Как ускорить работу макроса?
Для обработки больших таблиц (100 000+ строк) отключите обновление экрана и автоматические вычисления в начале макроса:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
А в конце добавьте:
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Это сократит время выполнения в 5-10 раз.
6. Проблемы с пробелами в формулах и сводных таблицах
Лишние пробелы часто ломают сводные таблицы и функции поиска. Например, если в исходных данных есть ячейки с текстом "Яблоко" и "Яблоко " (с пробелом в конце), Excel воспринимает их как разные значения. В результате:
- В сводной таблице появится две строки вместо одной.
ВПРилиИНДЕКС/ПОИСКПОЗвернут ошибку#Н/Д.СЧЁТЕСЛИпосчитает значения с пробелами отдельно.
Решение — нормализовать данные перед анализом:
- Добавьте вспомогательный столбец с формулой
=СЖПРОБЕЛЫ(A1). - Создавайте сводные таблицы и формулы на основе очищенного столбца.
- Используйте
ТЕКСТРАЗБ(в Excel 365), чтобы разбить текст на токены и исключить влияние пробелов.
Для проверки "чистоты" данных используйте условное форматирование:
- Выделите диапазон →
Главная → Условное форматирование → Создать правило. - Выберите
Использовать формулу...и введите:=ДЛСТР(A1)<>ДЛСТР(СЖПРОБЕЛЫ(A1)) - Задайте формат (например, красный фон) для ячеек с лишними пробелами.
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)="Привет";"Да";"Нет")