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

Лишние пробелы в ячейках Excel искажают данные, нарушают сортировку и приводят к ошибкам в формулах — особенно критично это для таблиц, экспортируемых в другие системы или используемых в сводных отчетах. Если при копировании данных из веб-страниц, PDF или текстовых файлов в Excel появились невидимые символы (включая неразрывные пробелы CHAR(160)), стандартный визуальный осмотр их не выявит. Первым признаком проблемы становится некорректная работа функций СЧЁТЕСЛИ или ВПР, когда условия поискаSuddenly перестают срабатывать, хотя данные кажутся идентичными.

В 80% случаев пробелы в Excel появляются из-за автоматического форматирования при импорте (например, при открытии CSV-файлов с разделителями-табуляциями) или ручного ввода с клавиши Space. Реже виновником становится неразрывный пробел ( ), который вставляется из веб-страниц или Word-документов. Чтобы точно определить тип пробела, используйте функцию =КОДСИМВ(СЖПРОБЕЛЫ(A1)) — она вернёт 32 для обычного пробела и 160 для неразрывного. Далее разберём все способы поиска — от ручного сканирования до автоматизированных макросов.

1. Поиск пробелов с помощью функции ПОИСК

Самый быстрый способ проверить наличие пробелов в ячейке — использовать функцию ПОИСК (или FIND в английской версии). Она возвращает позицию искомого символа или ошибку #ЗНАЧ!, если символ отсутствует. Для поиска обычного пробела введите:

=ЕСЛИ(ЕЧИСЛО(ПОИСК(" ";A1));"Есть пробел";"Пробелов нет")

Чтобы найти неразрывный пробел (код 160), используйте функцию СИМВОЛ:

=ЕСЛИ(ЕЧИСЛО(ПОИСК(СИМВОЛ(160);A1));"Есть неразрывный пробел";"Нет")

Растяните формулу на весь диапазон, и Excel отметит ячейки с пробелами. Минус метода — он не показывает количество пробелов, а только их наличие. Для массовой проверки лучше комбинировать с условным форматированием (раздел 3).

  • Плюсы: работает во всех версиях Excel, не требует надстроек.
  • Минусы: не отличает пробелы в начале/конце от пробелов между словами.
  • 🔹 Совет: для поиска пробелов только в начале или конце ячейки используйте =ЕСЛИ(A1<>СЖПРОБЕЛЫ(A1);"Есть лишние пробелы";"").

2. Использование функции СЖПРОБЕЛЫ для выявления лишних символов

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

=ЕСЛИ(A1<>СЖПРОБЕЛЫ(A1);"Есть лишние пробелы";"")

Если формула возвращает "Есть лишние пробелы", значит в ячейке есть:

  • 🔸 Пробелы в начале текста (например, " текст").
  • 🔸 Пробелы в конце текста (например, "текст ").
  • 🔸 Множественные пробелы между словами (например, "текст пример").

Важно: СЖПРОБЕЛЫ не удаляет неразрывные пробелы (код 160). Для них потребуется отдельная обработка (см. раздел 5).

Создайте копию исходного столбца|Примените формулу =A1<>СЖПРОБЕЛЫ(A1) ко всему диапазону|Отфильтруйте результаты по значению "ИСТИНА"|Проверьте ячейки на неразрывные пробелы (код 160)

-->

3. Условное форматирование для визуализации пробелов

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

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

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

=НЕ(ПОИСК(СИМВОЛ(160);A1)=0)
⚠️ Внимание: Условное форматирование не работает с пустыми ячейками. Если в данных есть пустые строки, предварительно заполните их символом-заполнителем (например, #Н/Д) или исключите из диапазона.
Тип пробела Формула для условного форматирования Пример срабатывания
Обычные лишние пробелы =A1<>СЖПРОБЕЛЫ(A1) " текст " или "текст пример"
Неразрывные пробелы (код 160) =НЕ(ПОИСК(СИМВОЛ(160);A1)=0) "текст пример" (между словами)
Пробелы в начале ячейки =ЛЕВСИМВ(A1)=" " " текст"
Пробелы в конце ячейки =ПРАВСИМВ(A1)=" " "текст "

4. Поиск и замена пробелов через диалоговое окно

Для массового удаления пробелов используйте инструмент Найти и заменить (Ctrl+H):

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

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

  1. В поле Найти вставьте символ неразрывного пробела (скопируйте его из этой строки:   или используйте Alt+0160 на цифровой клавиатуре).
  2. Замените на обычный пробел или удалите.
⚠️ Внимание: Замена всех пробелов на пустоту удалит все пробелы, включая необходимые между словами. Для избирательного удаления используйте формулы из раздела 2.
Как вставить неразрывный пробел без копирования

Нажмите Alt, затем наберите 0160 на цифровой клавиатуре (Num Lock должен быть включён). Символ появится после отпускания Alt.

5. Поиск неразрывных пробелов (код 160) и других непечатаемых символов

Неразрывные пробелы (CHAR(160)) не удаляются функцией СЖПРОБЕЛЫ и часто остаются незамеченными. Чтобы их найти:

=ЕСЛИ(НЕ(ПОИСК(СИМВОЛ(160);A1)=0);"Есть неразрывный пробел";"")

Для массовой замены неразрывных пробелов на обычные:

  1. Создайте вспомогательный столбец с формулой: =ПОДСТАВИТЬ(A1;СИМВОЛ(160);" ").
  2. Скопируйте результаты и вставьте их поверх исходных данных через Специальная вставкаЗначения.

Другие "невидимые" символы, которые могут попасть в Excel:

  • 🔹 Табуляция (CHAR(9)) — появляется при копировании из текстовых файлов.
  • 🔹 Перевод строки (CHAR(10) или CHAR(13)) — вставляется при переносе текста.
  • 🔹 Нуль-символ (CHAR(0)) — может блокировать функции Excel.

Каждый день|1-2 раза в неделю|Редко, но это критично|Никогда не замечал проблемы

-->

6. Автоматизация поиска пробелов с помощью VBA

Для обработки больших таблиц (10 000+ строк) напишите простой макрос. Он найдёт и выделит все ячейки с пробелами:

Sub FindSpaces()

Dim rng As Range, cell As Range

Set rng = Selection

For Each cell In rng

If cell.Value <> WorksheetFunction.Trim(cell.Value) Then

cell.Interior.Color = RGB(255, 150, 150) ' Красный фон

End If

Next cell

End Sub

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

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

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

Sub TrimAllCells()

Dim rng As Range

Set rng = Selection

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

End Sub

⚠️ Внимание: Макросы Trim не удаляют неразрывные пробелы. Для них добавьте в код строку замены: cell.Value = Replace(cell.Value, Chr(160), " ").

7. Проверка пробелов в импортированных данных (CSV, TXT)

При импорте данных из CSV или TXT пробелы часто добавляются автоматически — особенно если файлы созданы в системах с фиксированной шириной полей (например, банковские выписки). Чтобы избежать проблем:

  1. Перед импортом: откройте файл в Блокноте и проверьте наличие лишних пробелов в начале/конце строк.
  2. При импорте: используйте Мастер текстов (импорт) (вкладка ДанныеИз текста) и на шаге форматирования выберите опцию Пробел как разделитель, даже если он не основной.
  3. После импорта: примените СЖПРОБЕЛЫ ко всем текстовым столбцам.

Если данные импортируются регулярно, создайте шаблон обработки:

  • 📌 Сохраните макрос, который автоматически применяет Trim к выделенному диапазону.
  • 📌 Используйте Power Query (вкладка ДанныеИз текста/CSV) с шагом ОчисткаОбрезка.
  • 📌 Для критичных данных настройте проверку через Условное форматирование (раздел 3).

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

Почему функция СЧЁТЕСЛИ не находит ячейку, хотя данные совпадают?

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

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

Используйте формулу: =ЕСЛИ(ЛЕВСИМВ(A1)=" ":"Пробел в начале";""). Для массового удаления: =ЕСЛИ(ЛЕВСИМВ(A1)=" ";ПРАВСИМВ(A1;ДЛСТР(A1)-1);A1).

Можно ли найти пробелы в защищённых ячейках?

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

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

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

Как автоматизировать поиск пробелов при открытии файла?

Создайте макрос в книге Personal.xlsb (открывается при каждом запуске Excel) или используйте событие Workbook_Open:

Private Sub Workbook_Open()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

ws.Cells.SpecialCells(xlCellTypeConstants, xlText).Replace " ", ""

Next ws

End Sub

⚠️ Осторожно: этот код удалит все пробелы во всех текстовых ячейках!