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

Проблема с лишними пробелами между цифрами в Microsoft Excel знакома каждому, кто работает с импортированными данными, выгрузками из 1С или веб-формами. Эти невидимые символы ломают сортировку, мешают расчётам и портят внешний вид таблиц. Но почему Excel вообще сохраняет такие пробелы? Дело в том, что программа воспринимает их как часть текстового формата — даже если визуально ячейка выглядит как число.

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

1. Быстрая замена через Найти и заменить (Ctrl+H)

Самый простой метод, который работает в 90% случаев. Подходит для удаления обычных пробелов (ASCII 32) между цифрами, но бессилен против неразрывных пробелов и табуляций.

Алгоритм действий:

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

⚠️ Внимание: Если после замены числа превратились в даты (например, 1 000 стало 1-янв), значит Excel автоматически применил формат даты. Чтобы исправить:

⚠️ Выделите проблемные ячейки → ПКМ → Формат ячеек → Выберите категорию Текстовый или Числовой.

Выполнена ли замена во всех листах книги?|Сохранился ли числовой формат?|Нет ли "обрубленных" знаков после удаления пробелов (например, 123456781.23E+07)?|Проверены ли скрытые символы через РЕПТ(" ";100)?-->

2. Формула ПОДСТАВИТЬ для динамической очистки

Если данные обновляются автоматически (например, через Power Query), ручная замена не подойдёт. Здесь поможет формула:

=ПОДСТАВИТЬ(A1; " "; "")

Где A1 — адрес ячейки с исходными данными. Формулу можно растянуть на весь столбец.

Для удаления всех типов пробелов (включая неразрывные) используйте вложенную конструкцию:

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

Здесь СИМВОЛ(160) — это неразрывный пробел (HTML-сущность  ).

Тип пробела ASCII-код Как вставить в формулу Пример отображения
Обычный пробел 32 " " 1 000
Неразрывный пробел 160 СИМВОЛ(160) 1 000 (визуально неотличим)
Табуляция 9 СИМВОЛ(9) 1→000 (пробел с выравниванием)

3. Функция СЖПРОБЕЛЫ: когда пробелы нужны, но не между цифрами

Если в ячейке смешаны текст и числа (например, "Артикул 123 456"), и нужно убрать пробелы только внутри числовых последовательностей, стандартная замена не подойдёт. Здесь поможет комбинация функций:

=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(A1; " "; ""))

Но этот метод удалит все пробелы. Для избирательной очистки используйте формулу массива (вводится через Ctrl+Shift+Enter в старых версиях Excel):

=СЦЕПИТЬ(ЕСЛИ(ЕЧИСЛО(--ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)); ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1); ""))

⚠️ Внимание: Формулы массива значительно замедляют работу книги при больших объёмах данных (10 000+ строк). Для таких случаев лучше использовать Power Query (см. раздел 6).

Ручная замена (Ctrl+H)|Формулы ПОДСТАВИТЬ/СЖПРОБЕЛЫ|Power Query|VBA-скрипты|Не очищаю пробелы-->

4. Регулярные выражения в Excel 365 (функция ТЕКСТРАЗД)

В Excel 365 и Excel 2021 появилась поддержка регулярных выражений через функцию ТЕКСТРАЗД. Это революционный метод для работы с текстом, позволяющий удалять пробелы между цифрами одной формулой:

=ТЕКСТРАЗД(A1; "[0-9]"; ""; ИСТИНА)

Но для нашей задачи больше подходит комбинация:

=ТЕКСТРАЗД(ПОДСТАВИТЬ(A1; " "; ""); "([0-9])\s+([0-9])"; "$1$2")

Эта формула:

  • 🔹 Удаляет все пробелы (ПОДСТАВИТЬ).
  • 🔹 Восстанавливает пробелы между словами (если они были), но убирает их между цифрами.
Почему ТЕКСТРАЗД лучше стандартных функций?

Функция ТЕКСТРАЗД обрабатывает текст как регулярное выражение, что позволяет:

1. Удалять пробелы только между цифрами, сохраняя их в остальном тексте (например, "Привет 123 456 мир" → "Привет 123456 мир").

2. Работать с многобайтными пробелами (китайскими, японскими).

3. Обрабатывать данные в одну формулу без вложенных конструкций.

5. VBA-скрипт для массовой обработки

Если вам нужно очищать пробелы между цифрами регулярно (например, в еженедельных отчётах), имеет смысл создать макрос. Откройте редактор VBA (Alt+F11) и вставьте этот код:

Sub УдалитьПробелыМеждуЦифрами()

Dim rng As Range

Dim cell As Range

Dim regex As Object

Set regex = CreateObject("VBScript.RegExp")

regex.Global = True

regex.Pattern = "(\d)\s+(\d)"

For Each cell In Selection

If regex.Test(cell.Value) Then

cell.Value = regex.Replace(cell.Value, "$1$2")

End If

Next cell

End Sub

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

  1. Выделите диапазон ячеек.
  2. Запустите макрос через Alt+F8 → выберите УдалитьПробелыМеждуЦифрамиВыполнить.

⚠️ Внимание: Макрос изменит исходные данные без возможности отмены (если не сохранена предыдущая версия файла). Перед запуском:

⚠️ Создайте копию листа (ПКМ на ярлыке листа → Переместить/скопировать → Поставить галочку "Создать копию") или сохраните файл с другим именем.

6. Power Query: профессиональный инструмент для импорта данных

Если пробелы между цифрами появляются при импорте данных из CSV, XML или баз данных, лучшее решение — настроить очистку на этапе загрузки через Power Query:

Инструкция:

  1. Перейдите на вкладку ДанныеПолучить данные → выберите источник.
  2. В открывшемся редакторе Power Query выделите столбец с пробелами.
  3. На вкладке Преобразование выберите Заменить значения.
  4. В поле Значение для поиска введите пробел, в Замена оставьте пустым.
  5. Для неразрывных пробелов используйте #(00A0) в поле поиска.
  6. Нажмите Закрыть и загрузить.

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

  • 🔹 Очистка происходит автоматически при каждом обновлении данных.
  • 🔹 Сохраняется история преобразований (можно откатиться к предыдущей версии).
  • 🔹 Поддерживаются сложные правила (например, удалять пробелы только в числовых последовательностях длиной >3 символа).

7. Проблемы после очистки: почему числа превращаются в даты или научную нотацию

Частая ошибка после удаления пробелов — Excel автоматически преобразует числа в даты или экспоненциальный формат (например, 1234567891,23E+08). Это происходит из-за:

  • 🔹 Формата ячейки (по умолчанию Общий или Дата).
  • 🔹 Превышения лимита знаков (Excel отображает максимум 11 цифр в числовом формате).
  • 🔹 Наличия скрытых символов (например, дефиса или точки, которые Excel воспринимает как разделители даты).

Решения:

Проблема Причина Решение
Число стало датой Формат ячейки Дата или текст с разделителями (-, /) Примените формат Текстовый ДО очистки пробелов
Научная нотация (1,23E+08) Число превышает 11 знаков Используйте формат Текстовый или увеличьте разрядность через Формат ячеек → Числовой → Число десятичных знаков: 0
Нули в начале числа исчезли Excel игнорирует ведущие нули в числовом формате Преобразуйте ячейку в текст с помощью =ТЕКСТ(A1; "0") или примените формат Текстовый

FAQ: Частые вопросы по удалению пробелов в Excel

Почему после замены пробелов числа выравниваются по левому краю, как текст?

Это означает, что Excel автоматически применил текстовый формат к ячейкам. Чтобы вернуть числовой формат:

  1. Выделите проблемные ячейки.
  2. Нажмите Ctrl+1 (или ПКМ → Формат ячеек).
  3. Выберите категорию Числовой или Финансовый.

Если числа не "встают на место", проверьте их на наличие скрытых символов через формулу =КОДСИМВ(ЛЕВСИМВ(A1)).

Как удалить пробелы между цифрами, но сохранить их в остальном тексте (например, "Арт. 123 456 кг")?

Используйте формулу с регулярным выражением (для Excel 365):

=ТЕКСТРАЗД(A1; "(\d)\s+(\d)"; "$1$2")

Для старых версий Excel примените VBA-скрипт из раздела 5 или разбейте текст на части с помощью ТЕКСТПОСЛЕ/ТЕКСТДО.

Почему функция СЖПРОБЕЛЫ не убирает пробелы между цифрами?

СЖПРОБЕЛЫ удаляет лишние пробелы (например, несколько подряд), но оставляет одиночные. Чтобы убрать все пробелы между цифрами, комбинируйте её с ПОДСТАВИТЬ:

=ПОДСТАВИТЬ(СЖПРОБЕЛЫ(A1); " "; "")

Или используйте ТЕКСТРАЗД в Excel 365.

Как предотвратить появление пробелов между цифрами при импорте данных?

Настройте параметры импорта:

  • 🔹 В Power Query: на этапе загрузки примените замену пробелов (см. раздел 6).
  • 🔹 В Текст по столбцам: на шаге 3 мастера импорта выберите формат столбца Текстовый.
  • 🔹 Для CSV-файлов: откройте файл в Блокноте, удалите пробелы через замену (Ctrl+H), затем импортируйте в Excel.
Можно ли удалить пробелы между цифрами в Google Таблицах?

Да, в Google Sheets используйте аналогичные методы:

  • 🔹 Замена через Ctrl+H (работает так же, как в Excel).
  • 🔹 Формула =SUBSTITUTE(A1; " "; "").
  • 🔹 Регулярные выражения через =REGEXREPLACE(A1; "\d\s+\d"; "").

Для неразрывных пробелов используйте =SUBSTITUTE(A1; CHAR(160); "").