Лишние пробелы в ячейках Excel — одна из самых распространённых проблем при работе с текстом. Они появляются при импорте данных из других источников, копировании с веб-страниц или даже после ручного ввода. Эти "невидимые" символы портят сортировку, мешают сводным таблицам и искажают результаты функций вроде ВПР или ПОИСКПОЗ. Например, строки "Иванов И.И." и "Иванов И.И. " (с пробелом в конце) для Excel — это два разных значения.
В этой статье мы разберём 7 способов очистки пробелов — от базовых функций до продвинутых инструментов вроде Power Query и VBA. Вы узнаете, как удалить пробелы в начале/конце строки, между словами, а также неразрывные пробелы и табуляции. Особое внимание уделим скрытым символам, которые не удаляет стандартная функция TRIM, и покажем, как с ними бороться. Все методы протестированы в Excel 2019–2023 и Microsoft 365.
1. Функция TRIM: базовый способ удаления пробелов
Функция TRIM (или СЖПРОБЕЛЫ в русской версии) — первый инструмент, к которому прибегают пользователи. Она удаляет все пробелы в начале и конце строки, а также сокращает несколько пробелов между словами до одного. Формула простая:
=TRIM(A1)
Где A1 — ячейка с исходным текстом. Например, если в ячейке было " Привет мир ", после применения TRIM останется "Привет мир".
- ✅ Плюсы: работает во всех версиях Excel, не требует дополнительных надстроек.
- ❌ Минусы: не удаляет неразрывные пробелы (
CHAR(160)) и табуляции (CHAR(9)). - ⚠️ Ограничение: если в тексте есть двойные пробелы между словами, которые нужно сохранить (например, в фамилии "ван дер Ваальс"),
TRIMих сократит до одного.
Чтобы применить TRIM ко всему столбцу, потяните маркер автозаполнения вниз или используйте комбинацию Ctrl+D (заполнить вниз). Для постоянного удаления пробелов скопируйте результаты и вставьте их поверх исходных данных через Специальная вставка → Значения.
2. Функция CLEAN: удаление непечатаемых символов
Функция CLEAN (ПЕЧСИМВ в русской версии) удаляет непечатаемые символы с кодами от 0 до 31 (например, символы перевода строки или табуляции). Её часто комбинируют с TRIM для более глубокой очистки:
=TRIM(CLEAN(A1))
Пример работы: если в ячейке есть текст "Строка1
Строка2CLEAN удалит этот перенос, а TRIM уберёт лишние пробелы.
| Символ | Код (CHAR) | Удаляется ли CLEAN? | Удаляется ли TRIM? |
|---|---|---|---|
| Обычный пробел | 32 | ❌ Нет | ✅ Да (крайние) |
| Неразрывный пробел | 160 | ❌ Нет | ❌ Нет |
| Табуляция | 9 | ✅ Да | ❌ Нет |
| Перевод строки | 10 | ✅ Да | ❌ Нет |
Если после CLEAN пробелы остаются, значит, они относятся к печатаемым символам (например, неразрывные пробелы). В этом случае поможет комбинация с функцией SUBSTITUTE (см. следующий раздел).
3. SUBSTITUTE: замена конкретных пробелов
Функция SUBSTITUTE (ПОДСТАВИТЬ) позволяет целенаправленно заменять любые символы, включая пробелы. Например, чтобы удалить все пробелы (включая пробелы между словами), используйте:
=SUBSTITUTE(A1; " "; "")
А чтобы заменить неразрывные пробелы (код 160) на обычные (код 32), используйте функцию CHAR:
=SUBSTITUTE(A1; CHAR(160); CHAR(32))
Для комплексной очистки комбинируйте SUBSTITUTE с TRIM и CLEAN:
=TRIM(CLEAN(SUBSTITUTE(SUBSTITUTE(A1; CHAR(160); " "); " "; " ")))
- 🔹 CHAR(160) — неразрывный пробел (вставляется через
Alt+0160). - 🔹 CHAR(9) — табуляция.
- 🔹 " " — двойной пробел (заменяем на одинарный).
Если нужно удалить только пробелы в начале или конце, используйте комбинацию LEFT/RIGHT с LEN:
=IF(LEFT(A1,1)=" ", RIGHT(A1,LEN(A1)-1), A1)
Убедитесь, что включен режим отображения непечатаемых символов (Главная → Абзац → ¶)
Проверьте коды символов с помощью =КОДСИМВ(СИМВОЛ(1))
Используйте LEN для подсчёта символов до и после очистки
Тестируйте формулы на копии данных-->
4. Power Query: очистка пробелов в больших таблицах
Если данных много (тысячи строк), ручное применение формул неэффективно. В этом случае поможет Power Query — инструмент для преобразования данных, доступный в Excel 2016+ и Microsoft 365.
Алгоритм действий:
- Выделите диапазон данных и перейдите на вкладку
Данные → Получить данные → Из таблицы/диапазона. - В открывшемся редакторе Power Query выделите столбец с текстом.
- На вкладке
ПреобразованиевыберитеФормат → Очистить → Очистить пробелы(Trim). - Для замены неразрывных пробелов используйте
Заменить значения(введитеCHAR(160)в поле "Найти" и пробел в поле "Заменить на"). - Нажмите
Закрыть и загрузить, чтобы вернуть данные в Excel.
Преимущество Power Query — неразрушающая обработка: исходные данные остаются нетронутыми, а результаты загружаются в новую таблицу. Кроме того, вы можете сохранить шаги очистки и применять их повторно при обновлении данных.
Как удалить пробелы в Power Query с помощью кода M
Используйте этот код в редакторе Power Query (вкладка "Дополнительно"):
= Table.TransformColumns(#"Предыдущий шаг",{{"Название столбца", each Text.Clean(Text.Trim(_)), type text}})
Где "Название столбца" — имя вашего столбца с текстом.
5. Макросы VBA: автоматизация для опытных пользователей
Если вам нужно очищать пробелы регулярно или в многих файлах, стоит написать макрос на VBA. Ниже приведён код, который удаляет все типы пробелов (включая неразрывные и табуляции) в выделенном диапазоне:
Sub RemoveAllSpaces()
Dim rng As Range
Dim cell As Range
Set rng = Selection
For Each cell In rng
If Not IsEmpty(cell) Then
cell.Value = WorksheetFunction.Trim(cell.Value)
cell.Value = Replace(cell.Value, Chr(160), " ")
cell.Value = Replace(cell.Value, Chr(9), " ")
cell.Value = WorksheetFunction.Clean(cell.Value)
End If
Next cell
End Sub
Чтобы использовать макрос:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Вернитесь в Excel, выделите диапазон и запустите макрос через
Alt+F8.
Для удаления всех пробелов (включая пробелы между словами) замените строку:
cell.Value = Replace(cell.Value, " ", "")
⚠️ Внимание: Макросы могут конфликтовать с защищёнными листами или книгами. Перед запуском сохраните файл и проверьте настройки безопасности (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройка макросов).
6. Надстройка "Текст по столбцам": альтернативный метод
Малоизвестный способ очистки пробелов — использование инструмента Текст по столбцам (Данные → Текст по столбцам). Этот метод полезен, если пробелы являются разделителями (например, в данных типа "Иванов И.И. 1985").
Алгоритм:
- Выделите столбец с данными.
- Перейдите в
Данные → Текст по столбцам. - Выберите
С разделителями → Далее. - Снимите все галочки (уберите разделители
Табуляция,Точка с запятойи т. д.) и оставьте толькоПробел. - Нажмите
Готово. Excel разобьёт текст по пробелам, а затем вы сможете объединить данные обратно без лишних символов.
Этот метод не удаляет пробелы, а разделяет текст по ним, что иногда удобнее, чем формулы. Например, если у вас в ячейке "Адрес: ул. Ленина, 10 ", после разбивки вы получите чистые данные в отдельных столбцах.
7. Регулярные выражения (для Excel с надстройками)
Если вы используете надстройки вроде Kutools for Excel или ASAP Utilities, можно применить регулярные выражения (RegEx) для сложной очистки. Например, чтобы удалить:
- 📌 Все пробелы: регулярное выражение
\s+(заменить на пустую строку). - 📌 Пробелы в начале/конце:
^\s+|\s+$. - 📌 Неразрывные пробелы:
\u00A0.
Пример использования в Kutools:
- Выделите диапазон.
- Перейдите в
Kutools → Text → Find and Replace with Regular Expression. - В поле "Find" введите
\s+, в поле "Replace" оставьте пусто. - Нажмите
Replace All.
Регулярные выражения — самый мощный инструмент, но требует установки сторонних надстроек. Бесплатная альтернатива — использование Notepad++ или Sublime Text для предварительной очистки данных перед импортом в Excel.
FAQ: Частые вопросы по удалению пробелов
Почему функция TRIM не удаляет пробелы в моей таблице?
Скорее всего, в ваших данных используются неразрывные пробелы (код 160) или другие непечатаемые символы. Проверьте коды символов с помощью функции =КОДСИМВ(СИМВОЛ(1)) и примените SUBSTITUTE для их замены. Также убедитесь, что ячейки не содержат скрытых символов форматирования (например, после копирования из Word).
Как удалить пробелы в тысячах строк без формул?
Используйте Power Query или макрос VBA. Power Query позволяет очистить данные без изменения исходников и сохраняет шаги для повторного использования. Макрос подходит для одноразовой обработки больших объёмов. Также можно экспортировать данные в Notepad++ и применить замену по регулярному выражению \s+.
Можно ли удалить пробелы при импорте данных из CSV?
Да, при импорте через Данные → Из текстового файла на шаге преобразования в Power Query выберите Очистить пробелы. Также настройте разделители — если в CSV используются запятые, а пробелы лишние, укажите только запятую как разделитель.
Почему после очистки пробелов данные не сортируются правильно?
Проблема может быть связана с остаточными непечатаемыми символами (например, символами конца строки CHAR(13)). Примените функцию CLEAN или проверьте данные с помощью =LEN(A1) — если длина строки не совпадает с видимым количеством символов, значит, есть скрытые символы. Также убедитесь, что регистр букв совпадает (Excel различает "текст" и "Текст").
Как сохранить двойные пробелы между словами (например, в фамилиях)?
Функция TRIM сокращает несколько пробелов до одного, но вы можете использовать SUBSTITUTE с условием. Например, чтобы оставить только двойные пробелы между словами:
=SUBSTITUTE(SUBSTITUTE(A1; " "; " "); " "; " ")
Эта формула сначала заменяет тройные пробелы на двойные, а затем двойные на одинарные, сохраняя только нужные разрывы.