Как быстро убрать пробелы между цифрами в Excel: от ручных способов до автоматизации

Пробелы между цифрами в ячейках Excel — распространённая проблема, которая возникает при импорте данных из внешних источников (1С, CRM, текстовых файлов) или после неаккуратного ручного ввода. Например, номер телефона 8 912 345 67 89 или артикул товара AR 123 45 678 могут содержать лишние разделители, которые мешают дальнейшей обработке: сортировке, фильтрации или математическим вычислениям.

В этой статье разберём 7 проверенных способов удаления пробелов — от элементарных (подойдут новичкам) до продвинутых (для обработки тысяч строк). Особое внимание уделим нюансам, которые часто упускают в стандартных инструкциях: как сохранить формат чисел, избежать ошибок при конвертации в текст, и почему функция ЗАМЕНИТЬ иногда работает непредсказуемо. Также приведём уникальное сравнение производительности методов на больших массивах данных (10 000+ строк).

1. Почему пробелы между цифрами — это проблема?

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

  • 📉 Ошибки в формулах: Excel воспринимает 123 456 как текст, а не число — функции СУММ или СРЗНАЧ их игнорируют.
  • 🔍 Некорректная сортировка: Числа с пробелами сортируются как строки (100 200 окажется выше 999).
  • 🔗 Проблемы при сводке данных: В сводных таблицах значения AR12345 и AR 123 45 будут считаться разными.
  • 📤 Ошибки экспорта: Многие системы (например, банковские API) отвергают данные с пробелами в числовых полях.

Кроме того, пробелы могут быть невидимыми — например, неразрывные пробелы (код CHAR(160)), которые не удаляются стандартной функцией СЖПРОБЕЛЫ. Их часто добавляют программы вёрстки (вроде Adobe InDesign) или веб-формы.

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

2. Способ 1: Функция СЖПРОБЕЛЫ (TRIM) — простой, но ограниченный

Функция СЖПРОБЕЛЫ (англ. TRIM) удаляет только лишние пробелы в начале/конце ячейки и сокращает несколько пробелов между словами до одного. Для чисел с пробелами между цифрами она не подходит — пробелы останутся!

Пример ошибки:

=СЖПРОБЕЛЫ("123  456  789")  → вернёт "123 456 789" (пробелы между цифрами сохранены!)

Однако СЖПРОБЕЛЫ полезна для предварительной очистки данных, если пробелы комбинируются с другими символами. Например:

=СЖПРОБЕЛЫ(ПЕЧСИМВ(A1; " "))  → сначала удаляет ВСЕ пробелы, затем очищает краевые.

3. Способ 2: Функция ПЕЧСИМВ (SUBSTITUTE) — универсальное решение

Функция ПЕЧСИМВ (англ. SUBSTITUTE) заменяет все вхождения одного символа на другой. Для удаления пробелов используйте:

=ПЕЧСИМВ(A1; " "; "")

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

  • ✅ Удаляет все пробелы, включая неразрывные (если явно указать CHAR(160)).
  • ✅ Работает с текстом и числами.
  • ✅ Можно комбинировать с другими функциями (например, ЗНАЧЕН для конвертации в число).

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

=ПЕЧСИМВ(ПЕЧСИМВ(A1; " "; ""); СИМВОЛ(160); "")

Убедитесь, что в ячейках нет полезных пробелов (например, в ФИО)|Проверьте формат данных (текст/число)|Сохраните резервную копию файла|Протестируйте формулу на копии данных-->

4. Способ 3: Поиск и замена (Ctrl+H) — быстро и без формул

Самый простой метод для одноразовой обработки:

  1. Выделите диапазон ячеек.
  2. Нажмите Ctrl+H (или Найти и выделить → Заменить).
  3. В поле Найти введите пробел (один обычный).
  4. Поле Заменить на оставьте пустым.
  5. Нажмите Заменить всё.

⚠️ Внимание: Этот способ удаляет все пробелы, включая полезные (например, в адресах или ФИО). Для избирательного удаления используйте регулярные выражения (доступны в Power Query или через VBA).

Также учитывайте:

  • 🔄 Замена работает только с видимыми пробелами (код 32). Неразрывные (160) останутся.
  • 📊 После замены данные останутся в текстовом формате — для вычислений потребуется конвертация (ЗНАЧЕН или Текст по столбцам).

5. Способ 4: Power Query — для больших массивов данных

Power Query (вкладка Данные → Получить данные) — мощный инструмент для очистки данных, особенно если пробелы комбинируются с другими артефактами (табуляциями, переносами строк).

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

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

Преимущества Power Query:

КритерийПоиск-замена (Ctrl+H)Power Query
Обработка неразрывных пробелов❌ Нет✅ Да (с ручным вводом кода 160)
Автоматизация для новых данных❌ Требуется повторять✅ Сохраняет шаги очистки
Производительность на 10 000+ строк⚠️ Медленно✅ Быстро
Поддержка регулярных выражений❌ Нет✅ Да (через Column From Examples)
Как удалить пробелы только между цифрами в Power Query?

Используйте Column From Examples: введите в первой ячейке нового столбца пример результата (например, "123456" для исходного "123 456"), и Power Query автоматически сгенерирует код на языке M для избирательного удаления пробелов между цифрами.

6. Способ 5: Макросы VBA — для автоматизации

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

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

Dim rng As Range

For Each rng In Selection

If rng.Value Like " " Then

rng.Value = Replace(rng.Value, " ", "")

End If

Next rng

End Sub

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

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

⚠️ Внимание: Макрос удаляет все пробелы, включая полезные. Для избирательного удаления (например, только между цифрами) используйте регулярные выражения:

rng.Value = Regex.Replace(rng.Value, "[0-9] [0-9]", "$1$2")

(Требуется подключить библиотеку Microsoft VBScript Regular Expressions через Tools → References.)

7. Способ 6: Текст по столбцам — если пробелы разделяют части числа

Если пробелы используются как разделители (например, в номерах документов 77 01 123456), а вам нужно их соединить, используйте инструмент Текст по столбцам:

  1. Выделите столбец с данными.
  2. Перейдите в Данные → Текст по столбцам.
  3. Выберите С разделителями → Пробел.
  4. На шаге формата данных укажите Текстовый (чтобы избежать обрезки ведущих нулей).
  5. Нажмите Готово — данные разобьются по столбцам, которые затем можно объединить функцией СЦЕПИТЬ.

Этот метод полезен, если пробелы несут смысловую нагрузку (например, в серийных номерах). Для простого удаления он избыточен.

8. Способ 7: Формула массива для избирательного удаления

Если нужно удалить пробелы только между цифрами, сохраняя пробелы в остальном тексте (например, в строке "Артикул: AB 123 45 CD" оставить пробелы до/после цифр), используйте формулу массива:

=СЦЕПИТЬ(ЕСЛИ(И(КОДСИМВ(ПОСИМВ(A1;СТРОКА(ДВССЫЛ("1:100"))))>=48; КОДСИМВ(ПОСИМВ(A1;СТРОКА(ДВССЫЛ("1:100"))))<=57); ПОСИМВ(A1;СТРОКА(ДВССЫЛ("1:100"))); ЕСЛИ(ПОСИМВ(A1;СТРОКА(ДВССЫЛ("1:100")))=" "; ""; ПОСИМВ(A1;СТРОКА(ДВССЫЛ("1:100"))))); "")

Введите её как формулу массива (Ctrl+Shift+Enter в старых версиях Excel).

FAQ: Частые вопросы

Почему после удаления пробелов числа отображаются с зелёным треугольником?

Зелёный треугольник в левом верхнем углу ячейки означает, что Excel распознаёт содержимое как текст, хотя оно выглядит как число. Чтобы исправить:

  1. Выделите ячейки.
  2. Нажмите на восклицательный знак рядом с зелёным треугольником.
  3. Выберите Преобразовать в число.

Или используйте функцию =ЗНАЧЕН(A1) для принудительной конвертации.

Как удалить пробелы только в начале или конце числа?

Используйте функцию СЖПРОБЕЛЫ — она удаляет пробелы только по краям ячейки, не трогая пробелы между символами:

=СЖПРОБЕЛЫ(A1)

Для удаления только ведущих (в начале) пробелов:

=ПРАВСИМВ(A1; ДЛСТР(A1)-ПОИСКПРОБЕЛ(A1;1))
Можно ли удалить пробелы при импорте данных из CSV?

Да, настройте параметры импорта:

  1. При импорте CSV выберите столбец с пробелами.
  2. Укажите формат Текстовый.
  3. После импорта примените ПЕЧСИМВ или СЖПРОБЕЛЫ.

В Power Query можно настроить автоматическую очистку при загрузке (см. способ 5).

Почему функция ПЕЧСИМВ не удаляет пробелы в некоторых ячейках?

Вероятные причины:

  • Пробелы неразрывные (код 160) — используйте =ПЕЧСИМВ(A1; СИМВОЛ(160); "").
  • Ячейка содержит символ табуляции (код 9) или переноса строки (код 10).
  • Данные в ячейке — ошибка (например, #ЗНАЧ!), а не текст.

Для диагностики используйте функцию =КОДСИМВ(ПОСИМВ(A1;1)) — она покажет код первого символа.

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

Если лист защищён, вам потребуется:

  1. Снять защиту (Рецензирование → Снять защиту листа, если знаете пароль).
  2. Или использовать макрос с разрешением на редактирование защищённых ячеек:
Sub УдалитьПробелыВЗащите()

ActiveSheet.Unprotect Password:="ваш_пароль"

' Код удаления пробелов (см. способ 6)

ActiveSheet.Protect Password:="ваш_пароль"

End Sub