Пробелы между цифрами в ячейках Microsoft Excel — распространённая проблема, которая мешает корректной обработке данных. Они появляются при импорте из других систем, копировании с веб-страниц или ручном вводе. Такие "лишние" символы ломают формулы, препятствуют сортировке и сводным таблицам, а иногда даже приводят к ошибкам в финансовых расчётах.
Многие пользователи пытаются удалять пробелы вручную — но при больших объёмах данных это неэффективно. К счастью, в Excel есть минимум 5 способов автоматизировать процесс: от стандартных функций до написания макросов. Выбор метода зависит от версии программы, объёма данных и ваших навыков работы с таблицами.
В этой статье мы разберём все актуальные решения — от простейшего использования НАЙТИ И ЗАМЕНИТЬ до написания VBA-скриптов для обработки тысяч строк. Особое внимание уделим нюансам, которые часто упускают в стандартных инструкциях: как сохранить форматирование чисел, почему иногда пробелы возвращаются после удаления, и как избежать ошибок при работе с датами.
Почему пробелы между цифрами — это проблема
На первый взгляд, пробел в числе 1 000 500 кажется безобидным элементом оформления. Но для Excel это принципиально другой тип данных:
- 🔢 Числовое значение —
1000500(можно использовать в формулах, сортировать, суммировать) - 📝 Текстовая строка —
"1 000 500"(формулы игнорируют, сортировка работает по алфавиту)
Основные последствия "загрязнённых" данных:
- Формулы
СУММ(),СРЗНАЧ()возвращают ошибку#ЗНАЧ!или неверный результат - Невозможно построить сводные таблицы по таким ячейкам
- Функции
ВПР()/ИНДЕКС()не находят совпадения - Условное форматирование не срабатывает для числовых диапазонов
Критическая ошибка: пробелы в номерах документов (например, 45 02 123456) могут привести к несоответствиям при проверке контрольных сумм в бухгалтерских системах.
⚠️ Внимание: В некоторых европейских локалях Excel автоматически добавляет неразрывные пробелы (Unicode U+00A0) как разделители тысяч. Их нельзя удалить стандартной заменой — потребуются специальные функции.
Способ 1: Замена через "Найти и заменить" (самый быстрый)
Это базовый метод, который работает во всех версиях Excel (2010-2023) и не требует знания формул. Подходит для разовых операций с небольшими диапазонами:
- Выделите диапазон ячеек с пробелами (или всю таблицу —
Ctrl+A) - Нажмите
Ctrl+Hдля вызова окнаНайти и заменить - В поле
Найти:введите один пробел (нажмите клавишуSpace) - Поле
Заменить на:оставьте пустым - Нажмите
Заменить всё
Для обработки неразрывных пробелов:
- В поле
Найти:введитеAlt+0160(удерживаяAlt, наберите0160на цифровой клавиатуре)
Ограничения метода:
- ❌ Не сохраняет числовой формат (преобразует в текст)
- ❌ Не работает с пробелами в начале/конце ячейки (нужна отдельная замена)
- ❌ Может случайно удалить пробелы в текстовых ячейках
Выделить только числовые столбцы|Создать резервную копию данных|Проверить наличие неразрывных пробелов|Отключить автоматическое форматирование чисел-->
Способ 2: Функция ПЕЧСИМВ (для точной очистки)
Функция ПЕЧСИМВ() (англ. CLEAN) удаляет все непечатаемые символы, включая пробелы. Её главное преимущество — сохранение исходного формата данных. Синтаксис:
=ПЕЧСИМВ(А1)
Для обработки диапазона:
- Добавьте вспомогательный столбец рядом с исходными данными
- Введите формулу
=ПЕЧСИМВ(B2)(гдеB2— первая ячейка с пробелами) - Растяните формулу на весь столбец
- Скопируйте результаты (
Ctrl+C) и вставьте какЗначения(Ctrl+Shift+V → Значения) поверх исходных данных
Расширенный вариант (удаляет пробелы + преобразует в число):
=--ПЕЧСИМВ(ПОДСТАВИТЬ(A1;" ";""))
| Исходное значение | Формула | Результат | Тип данных |
|---|---|---|---|
"1 2 3 4" |
=ПЕЧСИМВ(A1) |
1234 |
Текст |
" 500 000 " |
=--ПЕЧСИМВ(A2) |
500000 |
Число |
"10.5 00" |
=ЗНАЧЕН(ПЕЧСИМВ(A3)) |
10.5 |
Число |
⚠️ Внимание: ФункцияПЕЧСИМВ()не удаляет обычные пробелы! Для них нужно комбинировать её сПОДСТАВИТЬ()илиСЖПРОБЕЛЫ().
Функция ПОДСТАВИТЬ|Найти и заменить|Power Query|Макросы|Другой способ-->
Способ 3: Power Query для массовой обработки
Инструмент Power Query (доступен в Excel 2016+) идеален для обработки больших объёмов данных с сохранением истории изменений. Алгоритм:
- Выделите диапазон →
Данные → Из таблицы/диапазона - В редакторе Power Query выберите столбец с пробелами
- Перейдите на вкладку
Преобразование - Выберите
Формат → Очистить → Очистить текст - Для удаления всех пробелов используйте
Заменить значения(пробел → пусто) - Нажмите
Закрыть и загрузить
Преимущества метода:
- ✅ Обрабатывает миллионы строк без замедления
- ✅ Сохраняет историю преобразований
- ✅ Можно создать шаблон для повторного использования
Скрытые возможности: Для удаления всех пробелов (включая неразрывные) используйте Дополнительные столбцы → Пользовательский столбец с формулой:
= Text.Replace([Column1], " ", "")
Как вернуть исходные данные после Power Query?
Все преобразования в Power Query не разрушают исходные данные — они создают новую таблицу. Чтобы вернуть оригинал:
1. Удалите созданный запрос в панели "Запросы" (вкладка "Данные")
2. Или отмените загрузку (Ctrl+Z сразу после импорта)
3. Исходный диапазон останется нетронутым в листе
Способ 4: Макросы VBA для автоматизации
Если вам регулярно приходится очищать пробелы в больших файлах, имеет смысл создать макрос. Этот код удаляет все пробелы во всех выделенных ячейках:
Sub RemoveAllSpaces()
Dim rng As Range
Dim cell As Range
Set rng = Selection
For Each cell In rng
If VarType(cell.Value) = vbString Then
cell.Value = Replace(cell.Value, " ", "")
cell.Value = Replace(cell.Value, Chr(160), "")
End If
Next cell
End Sub
Как использовать:
- Нажмите
Alt+F11для открытия редактора VBA - Вставьте код в новый модуль (
Insert → Module) - Выделите нужные ячейки в Excel и запустите макрос (
F5)
Расширенная версия (сохраняет числовой формат):
Sub CleanNumbers()
Dim cell As Range
For Each cell In Selection
If IsNumeric(Replace(cell.Text, " ", "")) Then
cell.Value = Val(Replace(cell.Text, " ", ""))
cell.NumberFormat = "General"
End If
Next
End Sub
⚠️ Внимание: Макросы автоматически преобразуют данные в текстовый формат. Чтобы вернуть числовой формат, после выполнения скрипта примените форматОбщийилиЧисловойк ячейкам.
1. Перейдите на вкладку "Разработчик" (если её нет — включите в настройках Excel)
2. Нажмите "Вставить" → "Кнопка" (элемент управления формы)
3. Нарисуйте кнопку на листе и присвойте ей ваш макрос
4. Теперь очистка пробелов будет доступна в один клик-->
Способ 5: Формулы для сложных случаев
Когда пробелы комбинируются с другими символами или нужно сохранить часть форматирования, помогают комплексные формулы:
| Задача | Формула | Пример |
|---|---|---|
| Удалить пробелы + преобразовать в число | =ЗНАЧЕН(ПОДСТАВИТЬ(A1;" ";"")) |
"1 234" → 1234 |
| Удалить пробелы в номере телефона | =ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;" ";"");"-";"") |
"8 (926) 123-45-67" → 89261234567 |
| Сохранить разделители тысяч | =ТЕКСТ(ПОДСТАВИТЬ(A1;" ";"");"# ##0") |
"1 000 500" → 1 000 500 (но уже как число) |
| Удалить пробелы в начале/конце | =СЖПРОБЕЛЫ(A1) |
" 123 " → 123 |
Формула для удаления всех типов пробелов (включая неразрывные):
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;CHAR(160);"");CHAR(32);"");CHAR(13);"")
Для работы с датами, где пробелы разделяют день/месяц/год:
=ДАТАЗНАЧ(ПОДСТАВИТЬ(A1;" ";"."))
Типичные ошибки и как их избежать
Даже опытные пользователи сталкиваются с проблемами при очистке пробелов. Рассмотрим самые распространённые:
- 🔄 Пробелы возвращаются после сохранения → Проверьте формат ячейки: если стоит
Текстовый, Excel может автоматически добавлять разделители при открытии файла. Решение: установите форматОбщийдо очистки. - 📉 Числа превращаются в даты → Это происходит с значениями типа
1 2 2023, которые Excel интерпретирует как1-фев-2023. Решение: перед очисткой примените текстовый формат. - ⚠️ Формулы перестают работать → После удаления пробелов проверьте, не сбились ли ссылки на ячейки. Особенно актуально для
ВПР()иИНДЕКС(). - 🔢 Потеря значимых пробелов → В номерах документов (например,
77 02 123456) пробелы могут быть частью структуры. Решение: используйте избирательную замену сПОДСТАВИТЬ()по шаблону.
Скрытая ловушка: В файлах, экспортированных из 1С, пробелы часто представлены как символы табуляции (Char(9)). Их не видно в ячейке, но они ломают формулы. Для обнаружения используйте:
=КОДСИМВ(ЛЕВСИМВ(A1))
Если результат 9 — в ячейке табуляция.
FAQ: Частые вопросы по удалению пробелов
Можно ли удалить пробелы без потери форматирования ячеек?
Да, но нужно действовать в два этапа:
- Скопируйте формат ячеек (
Главная → Буфер обмена → Формат по образцу) - Удалите пробелы любым методом
- Примените сохранённый формат обратно
Для цветов и шрифтов проще использовать Power Query — он сохраняет визуальное оформление.
Почему после удаления пробелов числа отображаются с экспонентой (1.23E+05)?
Это происходит когда:
- Число превышает 11 знаков (предел отображения в Excel)
- Установлен научный формат (
Числовой → Научный)
Решение: примените формат Числовой или расширьте столбец.
Как удалить пробелы в защищённых ячейках?
Три варианта:
- Временно снять защиту листа (
Рецензирование → Снять защиту листа) - Использовать Power Query — он работает поверх защиты
- Создать макрос с разрешением на редактирование защищённых ячеек:
ActiveSheet.Unprotect "пароль"' ваш код очистки
ActiveSheet.Protect "пароль"
Можно ли автоматически удалять пробелы при импорте данных?
Да, двумя способами:
- Power Query: Создайте шаблон запроса с очисткой и сохраните как подключение. При обновлении данных пробелы будут удаляться автоматически.
- VBA: Добавьте макрос в событие
Workbook_Open():Private Sub Workbook_Open()Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Cells.Replace What:=" ", Replacement:="", LookAt:=xlPart
Next
End Sub
⚠️ Осторожно: автоматическая очистка может удалить значимые пробелы в текстовых данных.
Как удалить пробелы в Google Таблицах?
Алгоритм аналогичен Excel, но с нюансами:
Найти и заменить(Ctrl+H) — работает идентично- Функция
=СЖПРОБЕЛЫ()удаляет только лишние пробелы - Для полной очистки:
=ПОДСТАВИТЬ(A1;" ";"") - Аналог Power Query —
Данные → Расширения → Apps Script
Отличие: в Google Таблицах нет функции ПЕЧСИМВ() — используйте =REGEXREPLACE(A1;"\s+";"") для удаления всех пробелов.