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

Вы когда-нибудь сталкивались с ситуацией, когда данные в Microsoft Excel выглядят идеально выровненными, но формулы вдруг перестают работать? Или при попытке объединить ячейки появляются странные пустые отступы? Виновником чаще всего становится неразрывный пробел — невидимый символ, который ведёт себя как обычный пробел, но игнорируется стандартными функциями вроде TRIM() или ПРОБЕЛЫ(). Этот "призрак" попадает в таблицы при копировании текста из веб-страниц, Word, PDF или баз данных, где используется для предотвращения переносов строк.

В отличие от обычного пробела (код 32 в ASCII), неразрывный пробел имеет код 160 и не удаляется привычными методами. Его наличие ломает сортировку, нарушает работу ВПР(), мешает сравнению строк и даже может искажать результаты аналитики. В этой статье мы разберём 5 способов обнаружения и удаления неразрывных пробелов — от ручных методов до автоматизации через VBA, а также научимся предотвращать их появление в будущем.

Что такое неразрывный пробел и почему он опасен для Excel

Неразрывный пробел (англ. non-breaking space, сокращённо  ) — это специальный символ, который визуально неотличим от обычного пробела, но выполняет другую функцию. В веб-дизайне и вёрстке он используется, чтобы предотвратить разрыв строк между словами (например, между инициалами и фамилией: И. Иванов). В Excel этот символ попадает чаще всего при:

  • 📋 Копировании данных из браузеров (особенно с сайтов на WordPress или Joomla)
  • 📄 Импорте текста из Microsoft Word или Google Docs
  • 📊 Экспорте отчётов из , SAP или других корпоративных систем
  • 📥 Загрузке CSV/TSV файлов, сгенерированных сторонними программами

Основная проблема заключается в том, что Excel не распознаёт код 160 как пробел. Это означает:

  • 🔍 Функция ПРОБЕЛЫ() (TRIM()) его не удаляет
  • ⚠️ СЖПРОБЕЛИ() (CLEAN()) тоже бессильна
  • 📉 Сортировка и фильтрация работают непредсказуемо
  • 🔗 Функции поиска (ПОИСК(), НАЙТИ()) его "не видят" без явного указания
⚠️ Внимание: Неразрывный пробел может маскироваться под пустую ячейку! Если формула =ЕПУСТО(A1) возвращает ЛОЖЬ, но ячейка выглядит пустой — проверьте её на наличие символа с кодом 160.

Способ 1: Ручная замена через функцию "Найти и заменить"

Самый простой метод, который работает в Excel 2010–2023 и Excel Online. Подходит для небольших таблиц (до 10 000 строк).

Алгоритм действий:

  1. Выделите диапазон ячеек (или весь лист комбинацией Ctrl+A)
  2. Нажмите Ctrl+H, чтобы открыть окно Найти и заменить
  3. В поле Найти введите неразрывный пробел. Для этого:
Как вставить неразрывный пробел в поле поиска?

Нажмите Alt и наберите на цифровой клавиатуре 0160, затем отпустите Alt. В поле появится символ, визуально неотличимый от пробела.

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

Далее:

  1. Оставьте поле Заменить на пустым (или введите обычный пробел, если нужно заменить на стандартный)
  2. Нажмите Заменить всё

Сравните количество заменённых вхождений с ожидаемым|Проверьте несколько ячеек на наличие "лишних" пробелов|Убедитесь, что данные в столбцах выровнены корректно|Протестируйте работу формул, зависящих от этих ячеек-->

⚠️ Внимание: Если после замены данные в ячейках "съехали" влево — значит, неразрывные пробелы использовались для выравнивания. В этом случае замените их на табуляцию (код 9) или обычные пробелы с последующей настройкой формата ячеек.

Способ 2: Формулы для автоматической очистки

Когда данных много или нужно регулярно очищать новые порции информации, ручная замена неэффективна. На помощь приходят формулы. Основной инструмент здесь — функция ПОДСТАВИТЬ() (SUBSTITUTE()), которая умеет работать с неразрывными пробелами, если правильно указать символ.

Базовая формула:

=ПОДСТАВИТЬ(A1;СИМВОЛ(160);"")

Где:

  • A1 — адрес ячейки с исходными данными
  • СИМВОЛ(160) — генерация неразрывного пробела
  • "" — замена на пустую строку (удалить)

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

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

Эта формула сначала заменяет неразрывные пробелы и табуляции на обычные, а затем удаляет лишние пробелы функцией ПРОБЕЛЫ().-->

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

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

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;СИМВОЛ(160);"");СИМВОЛ(160);"");СИМВОЛ(160);"")

Или создайте пользовательскую функцию на VBA (см. Способ 4).

📊 Как часто вы сталкиваетесь с неразрывными пробелами в Excel?
Ежедневно
Раз в неделю
Редко, но метко
Никогда не слышал о такой проблеме

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

Если вы работаете с Excel 2016+ или Excel 365, у вас есть мощный инструмент — Power Query (в старых версиях назывался Get & Transform). Этот метод идеален для обработки десятков тысяч строк, так как не нагружает саму таблицу формулами.

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

  1. Выделите исходные данные и перейдите на вкладку ДанныеИз таблицы/диапазона (или Get Data → From Table/Range)
  2. В открывшемся редакторе Power Query выделите столбец с пробелами
  3. Перейдите на вкладку ПреобразованиеЗаменить значения
  4. В поле Значение для поиска вставьте неразрывный пробел (код 160)
  5. В поле Заменить на оставьте пусто или укажите обычный пробел
  6. Нажмите ОК и Закрыть и загрузить

Преимущества метода:

  • ⚡ Обрабатывает миллионы строк без тормозов
  • 🔄 Сохраняет шаги очистки — при обновлении данных пробелы удалятся автоматически
  • 📊 Позволяет комбинировать с другими преобразованиями (разделение столбцов, изменение типов данных)
⚠️ Внимание: Если после загрузки данных в Power Query неразрывные пробелы отображаются как квадратики или знаки , измените кодировку источника на UTF-8 в настройках подключения.

Способ 4: VBA-макрос для массовой очистки

Для пользователей, которым приходится очищать неразрывные пробелы регулярно, оптимальное решение — создать пользовательскую функцию или макрос на VBA. Это сэкономит время и исключит ошибки при ручной обработке.

Пример кода для удаления неразрывных пробелов из выделенного диапазона:

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

Dim rng As Range

Dim cell As Range

Set rng = Selection

For Each cell In rng

If Not IsEmpty(cell) Then

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

End If

Next cell

End Sub

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

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

Для замены на обычный пробел измените строку:

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

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

Function УбратьПробел160(Текст As String) As String

УбратьПробел160 = Replace(Текст, Chr(160), "")

End Function

Теперь в любой ячейке можно писать:

=УбратьПробел160(A1)

Способ 5: Регулярные выражения (для опытных пользователей)

Если вы работаете с Excel 365 или используете надстройки вроде Kutools, у вас есть доступ к регулярным выражениям (regex). Этот метод позволяет гибко управлять заменой символов, включая неразрывные пробелы.

Пример regex для поиска неразрывного пробела:

\u00A0

Где:

  • \u00A0 — Unicode-код неразрывного пробела

Как применить в Excel 365:

  1. Используйте функцию ТЕКСТПОСЛЕ() (TEXTAFTER()) или ТЕКСТДО() (TEXTBEFORE()) с regex
  2. Для замены используйте ПОДСТАВИТЬ.РЕГ() (если доступна)

Пример формулы (требуется надстройка LAMBDA):

=LET(

текст; A1;

шаблон; UNICHAR(160);

РЕДУЦИРОВАТЬ(текст; ""; ЛЯМБДА(акк; текущий;

ПОДСТАВИТЬ(акк; шаблон; "")

))

)

⚠️ Внимание: Регулярные выражения в нативном Excel поддерживаются ограниченно. Для полноценной работы установите надстройки Kutools, Ablebits или используйте Power Query с расширением Regex.Functions.

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

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

  • 📥 Импорт данных: Всегда используйте Текст по столбцам (Data → Text to Columns) при импорте из CSV/TSV. На шаге выбора формата данных укажите UTF-8.
  • 🌐 Копирование с веб-страниц: Вставляйте текст через Специальная вставка → Текст (Paste Special → Text), а не стандартным Ctrl+V.
  • 📄 Работа с Word: Перед копированием из Word включите отображение непечатаемых символов () и вручную замените неразрывные пробелы на обычные.
  • 🔄 Обмен данными: Настройте в корпоративных системах (1С, SAP) экспорт без неразрывных пробелов или используйте промежуточный формат JSON.
  • 📊 Шаблоны: Создайте шаблоны таблиц с предварительной очисткой данных (через Power Query или VBA).

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

Private Sub Worksheet_Change(ByVal Target As Range)

Dim cell As Range

For Each cell In Target

If Not IsEmpty(cell) Then

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

End If

Next cell

End Sub

Этот код будет срабатывать при любом изменении ячеек на листе и заменять неразрывные пробелы на обычные.

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

❓ Почему функция ПРОБЕЛЫ() не удаляет неразрывные пробелы?

Функция ПРОБЕЛЫ() (TRIM()) удаляет только обычные пробелы (код 32) в начале и конце строки, а также сокращает несколько пробелов подряд до одного. Неразрывный пробел имеет код 160 и для Excel это другой символ, поэтому ПРОБЕЛЫ() его не распознаёт. Используйте ПОДСТАВИТЬ() с СИМВОЛ(160).

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

Есть 3 способа:

  1. Используйте функцию =НАЙТИ(СИМВОЛ(160);A1). Если результат > 0 — пробел есть.
  2. Включите режим формул (Ctrl+`) и проверьте коды символов.
  3. Экспортируйте данные в Блокнот и включите отображение непечатаемых символов.
❓ Можно ли удалить неразрывные пробелы при импорте CSV?

Да, при импорте через Power Query:

  1. В редакторе Power Query выделите столбец.
  2. Перейдите на вкладку ПреобразованиеЗаменить значения.
  3. В поле Значение для поиска введите #(00A0) (это код неразрывного пробела в Power Query).
  4. Замените на пустую строку или обычный пробел.

Также можно использовать параметр Encoding=1251 или UTF-8 в строке подключения.

❓ Почему после удаления пробелов данные в ячейках "склеились"?

Это происходит, если неразрывные пробелы были единственными разделителями между словами. Например, в ячейке было "Иванов И. И." — после удаления пробелов получится "ИвановИ.И.". Решение:

  • Заменяйте неразрывные пробелы на обычные (" "), а не удаляйте полностью.
  • Используйте Power Query для разделения текста по пробелам с последующей очисткой.
❓ Есть ли разница между неразрывным пробелом и thin space?

Да, это разные символы:

  • Неразрывный пробел (Ch(160) или  ) — ширина как у обычного пробела.
  • Thin space (Ch(8201) или ) — уже, используется в типографике (например, перед знаком тире: ).

В Excel thin space тоже может вызывать проблемы. Чтобы удалить оба типа, используйте:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;СИМВОЛ(160);"");СИМВОЛ(8201);"")