Почему пробелы в Excel — это проблема?
Лишние пробелы в ячейках Microsoft Excel могут показаться мелочью, но на практике они создают массу проблем. Во-первых, они искажают результаты сортировки: строка с пробелом в начале окажется не на своём месте в отсортированном списке. Во-вторых, пробелы мешают корректной работе функций ВПР, СЧЁТЕСЛИ и других инструментов поиска. Например, если в ячейке вместо "Иванов" записано " Иванов" (с пробелом перед фамилией), формула не найдёт это значение в другой таблице.
Третья проблема — визуальный беспорядок. Даже если пробелы не видны невооружённым глазом (например, неразрывные пробелы или пробелы после последнего символа), они могут портить выравнивание текста в ячейках, особенно при экспорте данных в другие форматы. Наконец, лишние пробелы увеличивают размер файла, что критично для больших таблиц с десятками тысяч строк.
В этой статье мы разберём все возможные типы пробелов в Excel (обычные, неразрывные, табуляции) и покажем, как их удалить с помощью встроенных функций, надстроек и даже VBA-макросов. Вы узнаете, какой метод подходит для вашего случая — от ручной правки до полностью автоматизированной очистки.
Типы пробелов в Excel: какие бывают и как их распознать
Не все пробелы одинаковы. В Excel встречаются как минимум 4 типа "невидимых" символов, которые создают пустое пространство в ячейках:
- 📍 Обычные пробелы — стандартный символ пробела (код
32в ASCII), который вставляется при нажатии клавишиSpace. Их легко заметить, если включить отображение непечатаемых символов. - 📍 Неразрывные пробелы — специальный символ (код
160), который не позволяет словам разрываться при переносе строки. Вставляется сочетаниемCtrl+Shift+Space. - 📍 Табуляции — символы горизонтального отступа (код
9), которые попадают в Excel при копировании данных из текстового редактора или веб-страницы. - 📍 Пробелы в начале/конце строки — часто остаются после импорта данных из CSV или баз данных, где поля выравниваются по ширине.
Чтобы проверить, какие именно пробелы есть в вашей таблице, используйте функцию =КОДСИМВ(СЖПРОБЕЛЫ(A1)) для обычных пробелов или =КОДСИМВ(ПЕЧСИМВ(A1)) для анализа всех символов. Если функция возвращает 32 — это обычный пробел, 160 — неразрывный.
⚠️ Внимание: Неразрывные пробелы не удаляются стандартной функцией TRIM (СЖПРОБЕЛЫ в русской версии). Для них потребуются дополнительные действия.
Способ 1: Функция СЖПРОБЕЛЫ (TRIM) — базовый метод
Самый простой способ удалить пробелы в начале и конце строки — использовать функцию СЖПРОБЕЛЫ (англ. TRIM). Она убирает:
- 📌 Все пробелы в начале текста
- 📌 Все пробелы в конце текста
- 📌 Множественные пробелы между словами (оставляет только один)
Формула для применения:
=СЖПРОБЕЛЫ(A1)
Чтобы применить её ко всему столбцу:
- Введите формулу в первую ячейку нового столбца (например,
B1). - Протяните маркер автозаполнения вниз до последней строки.
- Скопируйте результаты (
Ctrl+C) и вставьте их поверх исходных данных с помощью Специальной вставки → Значения.
Ограничение метода: СЖПРОБЕЛЫ не удаляет неразрывные пробелы и табуляции. Для них потребуется комбинация с функцией ПОДСТАВИТЬ (см. следующий раздел).
☑️ Подготовка к очистке данных
Способ 2: Комбинация ПОДСТАВИТЬ + СЖПРОБЕЛЫ для неразрывных пробелов
Если в ваших данных есть неразрывные пробелы (код 160), стандартная функция СЖПРОБЕЛЫ их не удалит. В этом случае используйте вложенную формулу:
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(A1;СИМВОЛ(160);" "))
Эта формула:
- Заменяет все неразрывные пробелы (
СИМВОЛ(160)) на обычные пробелы. - Применяет
СЖПРОБЕЛЫк результату, убирая лишние пробелы.
Для удаления табуляций (код 9) добавьте ещё одну функцию ПОДСТАВИТЬ:
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;СИМВОЛ(160);" ");СИМВОЛ(9);" "))
Если вам нужно удалить все пробелы вообще (включая пробелы между словами), используйте:
=ПОДСТАВИТЬ(A1;" ":"")
⚠️ Внимание: Последняя формула удаляет все пробелы, включая необходимые для разделения слов. Используйте её только для ячеек с кодами, идентификаторами или другими данными, где пробелы не нужны.
Способ 3: Power Query — автоматическая очистка больших таблиц
Если вам нужно очистить тысячи строк, ручное применение формул займёт слишком много времени. В этом случае используйте надстройку Power Query (доступна в Excel 2016 и новее). Этот инструмент позволяет:
- 🔹 Удалить пробелы в начале/конце строк
- 🔹 Заменить неразрывные пробелы на обычные
- 🔹 Применить преобразования ко всему файлу за несколько кликов
Инструкция по очистке:
- Выделите вашу таблицу и перейдите на вкладку
Данные → Из таблицы/диапазона(в группе Получить и преобразовать данные). - В открывшемся редакторе Power Query выделите столбец, который нужно очистить.
- На вкладке
ПреобразованиевыберитеФормат → Обрезка(удалит пробелы в начале/конце). - Для замены неразрывных пробелов:
Заменить значения→ в поле "Найти" введите#(00A0)(код неразрывного пробела), в поле "Заменить на" — обычный пробел. - Нажмите
Закрыть и загрузить, чтобы применить изменения.
Преимущество Power Query в том, что все шаги очистки сохраняются. При следующем обновлении данных (например, при импорте нового CSV-файла) все преобразования применятся автоматически.
| Метод | Удаляет пробелы в начале/конце | Удаляет неразрывные пробелы | Удаляет табуляции | Подходит для больших таблиц |
|---|---|---|---|---|
СЖПРОБЕЛЫ |
✅ Да | ❌ Нет | ❌ Нет | ❌ Нет (ручное протягивание) |
ПОДСТАВИТЬ + СЖПРОБЕЛЫ |
✅ Да | ✅ Да | ✅ Да (с дополнительной заменой) | ❌ Нет |
| Power Query | ✅ Да | ✅ Да | ✅ Да | ✅ Да (автоматизация) |
Найти и заменить (Ctrl+H) |
✅ Да (только вручную) | ✅ Да (если знать код символа) | ✅ Да | ❌ Нет (ручная замена) |
Способ 4: Найти и заменить — быстрый ручной метод
Если пробелов немного и они однотипные, проще всего воспользоваться инструментом Найти и заменить (Ctrl+H). Этот метод подходит для:
- 🔍 Удаления пробелов в начале/конце строк (если они одинаковые)
- 🔍 Замены неразрывных пробелов на обычные
- 🔍 Удаления табуляций
Пошаговая инструкция:
- Выделите диапазон ячеек, который нужно очистить.
- Нажмите
Ctrl+H, чтобы открыть окно Найти и заменить. - Для удаления пробелов в начале строки:
- В поле "Найти" введите
^(каретка и пробел). - В поле "Заменить на" оставьте пусто.
- Нажмите
Заменить всё.
- В поле "Найти" введите
- Для удаления пробелов в конце строки:
- В поле "Найти" введите
$(пробел и знак доллара). - В поле "Заменить на" оставьте пусто.
- В поле "Найти" введите
- В поле "Найти" введите
Alt+0160(удерживая Alt, наберите 0160 на цифровой клавиатуре). - В поле "Заменить на" введите обычный пробел.
Ограничение: этот метод не удаляет множественные пробелы между словами. Для этого всё равно потребуется СЖПРОБЕЛЫ.
Как вставить неразрывный пробел в поле "Найти"
Чтобы вставить неразрывный пробел в окно "Найти и заменить", нажмите Alt и, удерживая его, наберите 0160 на цифровой клавиатуре (справа). В поле появится невидимый символ. Если не сработало, скопируйте неразрывный пробел из другой программы (например, Word) и вставьте в поле поиска.
Способ 5: VBA-макрос для массовой очистки
Если вам регулярно приходится очищать пробелы в больших файлах, имеет смысл автоматизировать процесс с помощью VBA-макроса. Ниже приведён код, который:
- 🤖 Удаляет все пробелы в начале и конце строк
- 🤖 Заменяет множественные пробелы между словами на один
- 🤖 Удаляет неразрывные пробелы и табуляции
- 🤖 Работает с выделенным диапазоном или всем листом
Инструкция по установке макроса:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - В меню выберите
Insert → Module. - Скопируйте и вставьте следующий код:
Sub RemoveAllSpaces()
Dim rng As Range
Dim cell As Range
Dim originalValue As String
Dim cleanedValue As String
' Проверяем, выделен ли диапазон
On Error Resume Next
Set rng = Selection
On Error GoTo 0
' Если ничего не выделено, работаем с активным листом
If rng Is Nothing Then
Set rng = ActiveSheet.UsedRange
End If
' Отключаем обновление экрана для ускорения
Application.ScreenUpdating = False
' Обрабатываем каждую ячейку
For Each cell In rng
If cell.HasFormula = False Then ' Пропускаем ячейки с формулами
originalValue = cell.Value
' Заменяем неразрывные пробелы и табуляции на обычные пробелы
cleanedValue = Replace(originalValue, Chr(160), " ")
cleanedValue = Replace(cleanedValue, Chr(9), " ")
' Удаляем лишние пробелы
cleanedValue = WorksheetFunction.Trim(cleanedValue)
' Заменяем множественные пробелы на один
Do While InStr(cleanedValue, " ") > 0
cleanedValue = Replace(cleanedValue, " ", " ")
Loop
' Записываем результат обратно в ячейку
cell.Value = cleanedValue
End If
Next cell
' Включаем обновление экрана
Application.ScreenUpdating = True
MsgBox "Очистка пробелов завершена!", vbInformation
End Sub
Чтобы запустить макрос:
- Вернитесь в Excel и нажмите
Alt+F8. - Выберите макрос
RemoveAllSpacesи нажмитеВыполнить. - Если нужно очистить конкретный диапазон, выделите его перед запуском макроса.
⚠️ Внимание: Макрос необратимо изменяет данные в ячейках. Перед запуском сохраните резервную копию файла или работайте с копией листа.
Способ 6: Формула массива для сложных случаев
Если в ваших данных пробелы комбинируются с другими непечатаемыми символами (например, символами переноса строки), может потребоваться формула массива. Она позволяет обработать несколько условий одновременно.
Пример формулы для удаления:
- Пробелов в начале/конце
- Неразрывных пробелов
- Табуляций
- Символов переноса строки (
Ch(10)иCh(13))
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;СИМВОЛ(160);" ");СИМВОЛ(9);" ");СИМВОЛ(10);" ");СИМВОЛ(13);" ");" ":" "))
Эта формула:
- Последовательно заменяет все нежелательные символы на обычные пробелы.
- Применяет
СЖПРОБЕЛЫдля удаления лишних пробелов. - На последнем шаге заменяет двойные пробелы на одинарные (на случай, если
СЖПРОБЕЛЫне справилась).
Для работы с формулой массива:
- Введите формулу в ячейку.
- Нажмите
Ctrl+Shift+Enter(вместо обычногоEnter). - Excel автоматически обернёт формулу в фигурные скобки
{}.
Способ 7: Онлайн-инструменты для очистки данных
Если вы работаете с конфиденциальными данными и не можете использовать макросы или надстройки, можно воспользоваться онлайн-инструментами для очистки пробелов. Они подходят для:
- 🌐 Разовых задач с небольшими таблицами
- 🌐 Данных, которые нельзя обрабатывать в Excel (например, из-за ограничений лицензии)
- 🌐 Проверки результатов перед финальной обработкой
Популярные сервисы:
| Сервис | Ссылка | Функции | Ограничения |
|---|---|---|---|
| TextFixer | textfixer.com | Удаление пробелов, табуляций, переносов строк | Ограничение 5000 символов |
| ConvertCSV | convertcsv.com | Очистка CSV-файлов, удаление пробелов | Требует загрузки файла |
| ExcelFormulaBot | excelformulabot.com | Генерация формул для очистки пробелов | Не обрабатывает данные напрямую |
Как использовать онлайн-инструменты:
- Скопируйте данные из Excel в буфер обмена (
Ctrl+C). - Вставьте их в поле на сайте сервиса.
- Выберите опцию удаления пробелов (обычно
Trim whitespaceилиClean spaces). - Скопируйте очищенные данные и вставьте их обратно в Excel.
⚠️ Внимание: Не используйте онлайн-сервисы для обработки конфиденциальных данных (персональная информация, финансовые отчёты и т. д.). Все загруженные данные могут сохраняться на серверах третьих лиц.
FAQ: Частые вопросы о пробелах в Excel
Почему функция СЖПРОБЕЛЫ не удаляет пробелы в моей таблице?
Скорее всего, в ваших данных используются неразрывные пробелы (код 160) или другие непечатаемые символы. Проверьте тип пробелов с помощью функции =КОДСИМВ(ПРАВСИМВ(A1)). Если результат — 160, используйте комбинацию ПОДСТАВИТЬ + СЖПРОБЕЛЫ.
Как удалить пробелы только в начале строки, но оставить их в конце?
Используйте формулу с функцией ПРАВСИМВ для проверки последнего символа:
=ЕСЛИ(ПРАВСИМВ(A1)=" ";A1;СЖПРОБЕЛЫ(A1))
Эта формула удаляет пробелы только в начале, если в конце строки есть пробел.
Можно ли автоматически очищать пробелы при импорте данных из CSV?
Да, для этого настройте Power Query:
- При импорте CSV выберите
Преобразовать данные. - В редакторе Power Query выделите нужные столбцы.
- Примените команду
Формат → Обрезка. - Добавьте шаг замены неразрывных пробелов (как описано в Способе 3).
- Сохраните запрос — при следующем импорте очистка будет выполняться автоматически.
Почему после удаления пробелов данные не сортируются правильно?
Возможно, в ячейках остались невидимые символы, которые не являются пробелами (например, символы нулевой ширины или управляющие символы). Проверьте коды символов с помощью функции =КОД(ПРАВСИМВ(A1)) для каждого символа в строке. Если обнаружите подозрительные коды (например, 0–31), используйте ПОДСТАВИТЬ для их удаления.
Как удалить пробелы во всём файле Excel за один раз?
Самый быстрый способ — использовать VBA-макрос (Способ 5). Альтернатива:
- Выделите все листы в файле (удерживайте
Ctrlи кликайте по вкладкам листов). - Нажмите
Ctrl+Hи замените пробелы, как описано в Способе 4. - Повторите для неразрывных пробелов (
Alt+0160).
Для больших файлов (>100 тыс. строк) лучше использовать Power Query.