Как убрать пробел внутри числа в ячейке Excel: от простых замен до VBA-скриптов

Пробел в середине числа в Microsoft Excel — одна из самых коварных ошибок, которая может испортить расчёты, сорвать отчёты и заставить тратить часы на поиск причины неработающих формул. Выглядит это обычно так: вместо ожидаемого 1000000 в ячейке отображается 1 000 000 (с разделителями) или 12 34 56 (с хаотичными пробелами), а Excel упорно воспринимает это как текст, а не как число. В результате функции вроде СУММ() или СРЗНАЧ() игнорируют такие ячейки, а попытки отформатировать их как числовой формат заканчиваются ошибкой.

Причины появления пробелов внутри чисел бывают разными: от некорректного импорта данных из или PDF до ручного ввода с случайным нажатием клавиши Space. Но результат всегда один — потеря функциональности. Эта статья поможет разобраться, как удалить пробелы внутри чисел в Excel, сохранив при этом их числовой формат. Мы рассмотрим методы от элементарных (для новичков) до продвинутых (с использованием VBA), а также разберём типичные ошибки и нюансы, о которых не пишут в стандартных инструкциях.

Если вы уже пробовали заменить пробелы через Найти и заменить (Ctrl+H), но Excel по-прежнему воспринимает ячейки как текст — не спешите отчаиваться. Дело в том, что после удаления пробелов часто требуется принудительное преобразование формата, иначе программа продолжит игнорировать числа. Далее вы узнаете, как сделать это правильно.

Почему Excel не воспринимает числа с пробелами как числа?

На первый взгляд, проблема кажется тривиальной: удали пробел — и всё заработает. Но на практике после очистки ячеек формулы по-прежнему выдают ошибку #ЗНАЧ! или просто игнорируют данные. Всё дело в скрытых атрибутах формата:

Когда вы вводите в ячейку текст с пробелами (например, 12 345), Excel автоматически присваивает ей текстовый формат. Даже если потом убрать пробелы вручную, программа не станет сама преобразовывать данные обратно в числа — для этого нужно явное указание. Вот почему простая замена пробелов на пустоту часто не решает проблему.

Ещё одна ловушка — неразрывные пробелы (специальный символ, который выглядит как обычный пробел, но ведёт себя иначе). Они могут появиться при копировании данных из веб-страниц или документов Word. Такие пробелы не удаляются стандартной заменой и требуют отдельного подхода.

Наконец, в некоторых локалях Excel по умолчанию использует пробел как разделитель тысяч (например, в российской версии). Это настройка формата, а не реальный символ в ячейке. Чтобы отличить её от настоящего пробела, посмотрите на строку формул — если там нет пробела, а в ячейке он отображается, значит, это просто форматирование.

📊 Как часто вы сталкиваетесь с пробелами в числах Excel?
Постоянно
Иногда
Редеко
Никогда
Не знаю, как проверить

Способ 1: Ручное удаление пробелов через "Найти и заменить"

Самый очевидный метод — использование функции Найти и заменить (Ctrl+H). Он подходит для одноразовой очистки небольших таблиц, но имеет ограничения. Вот как это сделать правильно:

  1. Выделите диапазон ячеек с проблемами (или всю таблицу, нажав Ctrl+A).

  2. Нажмите Ctrl+H, чтобы открыть окно замены.

  3. В поле "Найти" введите пробел (один раз нажмите клавишу Space).

  4. Поле "Заменить на" оставьте пустым.

  5. Нажмите "Заменить всё".

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

  1. Выделите обработанные ячейки.

  2. На вкладке Главная в группе Число выберите формат "Числовой" или "Общий".

  3. Если числа не изменили выравнивание (остались прижаты к левому краю), щёлкните по зелёному треугольнику ошибки в углу ячейки и выберите "Преобразовать в число".

⚠️ Внимание: Этот метод не сработает, если в ячейках есть неразрывные пробелы (они выглядят как обычные, но не удаляются стандартной заменой). Чтобы их обнаружить, используйте функцию =КОДСИМВ(СЖПРОБЕЛЫ(A1)) — если результат 160, значит, пробел неразрывный.

☑️ Подготовка к замене пробелов

Выполнено: 0 / 4

Способ 2: Функция СЖПРОБЕЛЫ для удаления всех пробелов

Если пробелы расположены хаотично (например, 1 23 45 6), а не только как разделители тысяч, поможет функция СЖПРОБЕЛЫ. Она удаляет все пробелы в тексте, включая лишние между словами. Для чисел это идеальный вариант, так как цифры не должны содержать пробелов вообще.

Формула для очистки:

=ЗНАЧЕН(СЖПРОБЕЛЫ(A1))

Где:

  • 📌 СЖПРОБЕЛЫ(A1) — убирает все пробелы из ячейки A1.
  • 📌 ЗНАЧЕН() — преобразует результат в число.

Чтобы применить это ко всему столбцу:

  1. Вставьте формулу в первую ячейку вспомогательного столбца (например, B1).

  2. Протяните её вниз до конца данных.

  3. Скопируйте результаты (Ctrl+C) и вставьте их поверх исходных данных как "Значения" (Правая кнопка → Специальная вставка → Значения).

  4. Удалите вспомогательный столбец.

⚠️ Внимание: Если в ячейках есть буквы или другие символы (например, 123 кг), функция ЗНАЧЕН() вернёт ошибку #ЗНАЧ!. В этом случае используйте только СЖПРОБЕЛЫ без преобразования.

Способ 3: Формула ПОДСТАВИТЬ для избирательного удаления пробелов

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

=ЗНАЧЕН(ПОДСТАВИТЬ(A1; " "; ""))

Преимущество этого метода в том, что он работает даже с неразрывными пробелами (если указать их символ в формуле). Чтобы вставить неразрывный пробел в формулу, используйте функцию СИМВОЛ(160):

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

Для обработки целого столбца:

  • 🔹 Введите формулу в первую ячейку вспомогательного столбца.
  • 🔹 Протяните её до конца данных.
  • 🔹 Скопируйте результаты и вставьте их как значения поверх исходных данных.

Если пробелы стоят на строго определённых позициях (например, после каждого третьего символа), можно использовать комбинацию функций ЛЕВСИМВ, ПСТР и ПРАВСИМВ для "склеивания" частей числа без пробелов. Однако такой подход требует знания точного расположения пробелов и обычно менее универсален, чем СЖПРОБЕЛЫ.

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

Если таблица содержит тысячи строк, а пробелы встречаются в разных позициях, ручная обработка займёт слишком много времени. В этом случае поможет макрос на VBA, который удалит все пробелы в выбранных ячейках и преобразует текст в числа.

Вот готовый код для вставки в редактор VBA:

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

Dim rng As Range

Dim cell As Range

' Выделяем диапазон (например, столбец A)

Set rng = Selection

' Отключаем обновление экрана для ускорения

Application.ScreenUpdating = False

For Each cell In rng

If VarType(cell.Value) = vbString Then

' Удаляем все пробелы (включая неразрывные)

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

' Преобразуем в число, если возможно

If IsNumeric(cell.Value) Then

cell.Value = CDbl(cell.Value)

cell.NumberFormat = "General"

End If

End If

Next cell

Application.ScreenUpdating = True

MsgBox "Пробелы удалены, числа преобразованы!", vbInformation

End Sub

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

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.

  2. В меню выберите Insert → Module.

  3. Вставьте код выше.

  4. Вернитесь в Excel, выделите диапазон с проблемами и запустите макрос (Alt+F8 → УдалитьПробелыВЧислах → Выполнить).

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

Критичный нюанс: макрос не обрабатывает ячейки с формулами — только с статическими значениями. Если пробелы появляются в результатах формул, исправляйте их в исходных данных.

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

Если лист защищён от изменений, макрос не сработает. Сначала снимите защиту: перейдите на вкладку "Рецензирование" → "Снять защиту листа" (может потребоваться пароль). После обработки данных не забудьте включить защиту обратно.

Способ 5: Power Query для сложных случаев

Если данные импортируются в Excel из внешних источников (например, SQL, CSV или JSON) и содержат пробелы в числах, удобнее использовать Power Query — инструмент для очистки и преобразования данных. Он позволяет создавать повторяемые сценарии обработки, что полезно для регулярных отчётов.

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

  1. Выделите диапазон с данными и нажмите Данные → Из таблицы/диапазона (в новых версиях Excel).

  2. В открывшемся окне Power Query выберите столбец с проблемами.

  3. На вкладке Преобразование нажмите Заменить значения.

  4. В поле "Значение для поиска" введите пробел, в "Заменить на" — оставьте пусто. Нажмите ОК.

  5. Выделите столбец ещё раз и выберите Преобразование → Тип данных → Целое число (или Десятичное число).

  6. Нажмите Главная → Закрыть и загрузить, чтобы вернуть данные в Excel.

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

  • 📊 Обрабатывает большие объёмы данных без замедления.
  • 🔄 Сохраняет шаги очистки — при следующем импорте достаточно обновить запрос.
  • 🛠️ Умеет работать с неразрывными пробелами и другими скрытыми символами.

Если пробелы появляются при каждом импорте, сохраните запрос и используйте его как шаблон. Для этого после загрузки данных нажмите Данные → Получить данные → Запросы и соединения, найдите свой запрос и сохраните файл как шаблон (.xltx).

Таблица: Сравнение методов удаления пробелов в числах

Метод Сложность Подходит для Обрабатывает неразрывные пробелы Сохраняет формат чисел
Найти и заменить (Ctrl+H) Небольшие таблицы, единичные случаи ❌ Нет ⚠️ Требует ручного преобразования
СЖПРОБЕЛЫ + ЗНАЧЕН ⭐⭐ Столбцы с хаотичными пробелами ✅ Да ✅ Да
ПОДСТАВИТЬ ⭐⭐ Фиксированные позиции пробелов ✅ Да (с СИМВОЛ(160)) ✅ Да
Макрос VBA ⭐⭐⭐ Большие таблицы, повторяющиеся задачи ✅ Да ✅ Да
Power Query ⭐⭐⭐ Импортированные данные, регулярные отчёты ✅ Да ✅ Да

Типичные ошибки и как их избежать

Даже после удаления пробелов числа могут оставаться "текстовыми". Вот самые распространённые причины и решения:

🔴 Ошибка 1: Числа остаются выровнены по левому краю.

Решение: Выделите ячейки → на вкладке Главная выберите формат Числовой или Общий. Если не помогло, щёлкните по зелёному треугольнику в углу ячейки и выберите Преобразовать в число.

🔴 Ошибка 2: После замены пробелов появляется ошибка #ЗНАЧ! в формулах.

Решение: Проверьте, не осталось ли в ячейках скрытых символов (например, табуляции или перевода строки). Используйте функцию =ЧИСТ(СЖПРОБЕЛЫ(A1)) для очистки.

🔴 Ошибка 3: Макрос не работает с защищёнными ячейками.

Решение: Снимите защиту с листа (Рецензирование → Снять защиту листа), запустите макрос, затем верните защиту.

🔴 Ошибка 4: В некоторых ячейках пробелы остались.

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

🔴 Ошибка 5: После очистки числа отображаются в экспоненциальном формате (например, 1.23E+05).

Решение: Увеличьте ширину столбца или примените пользовательский формат (Формат ячеек → Числовой → Отображать разделители тысяч).

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

Можно ли удалить пробелы в числах без потери форматирования (например, сохраняя разделители тысяч)?

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

  1. Выделите ячейки.
  2. Нажмите Ctrl+1 (Формат ячеек).
  3. Выберите формат Числовой и отметьте галочку Разделитель групп разрядов.

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

Почему после удаления пробелов функция СУММ не работает?

Скорее всего, ячейки всё ещё имеют текстовый формат. Проверьте это по двум признакам:

  • Числа выровнены по левому краю (текст обычно выравнивается влево, а числа — вправо).
  • В строке формул видно зелёный треугольник с восклицательным знаком.

Решение: выделите ячейки → на вкладке Главная выберите формат Общий или Числовой. Если не помогло, используйте функцию =ЗНАЧЕН() для принудительного преобразования.

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

Если ячейки защищены, сначала снимите защиту:

  1. Перейдите на вкладку Рецензирование.
  2. Нажмите Снять защиту листа (может потребоваться пароль).
  3. Удалите пробелы любым из описанных методов.
  4. Верните защиту: Рецензирование → Защитить лист.

Если снять защиту нельзя (например, файл чужой), скопируйте данные в новый лист (Главная → Формат → Перенести или скопировать лист) и работайте с копией.

Можно ли автоматически удалять пробелы при вводе данных?

Да, для этого подойдёт условное форматирование или макрос на событие. Например, этот код будет очищать пробелы при изменении ячейки:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim cell As Range

For Each cell In Target

If VarType(cell.Value) = vbString Then

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

If IsNumeric(cell.Value) Then

cell.Value = CDbl(cell.Value)

End If

End If

Next cell

End Sub

Чтобы активировать его:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Дважды щёлкните по названию листа в окне Project Explorer.
  3. Вставьте код выше.
  4. Сохраните файл как .xlsm (с поддержкой макросов).

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

Как удалить пробелы в числах на Mac (Excel для macOS)?

Все описанные методы работают и в Excel для Mac, за исключением горячих клавиш:

  • Замена: Command + H (вместо Ctrl+H).
  • Редактор VBA: Option + F11.
  • Формат ячеек: Command + 1.

Также в macOS может не работать макрос с Chr(160) для неразрывных пробелов. Вместо него используйте:

cell.Value = Replace(cell.Value, ChrW(&H00A0), "")

Это универсальный способ удаления неразрывных пробелов, работающий на всех платформах.