Проблема с лишними пробелами между цифрами в Microsoft Excel знакома каждому, кто работает с импортированными данными, выгрузками из 1С или веб-формами. Эти невидимые символы ломают сортировку, мешают расчётам и портят внешний вид таблиц. Но почему Excel вообще сохраняет такие пробелы? Дело в том, что программа воспринимает их как часть текстового формата — даже если визуально ячейка выглядит как число.
В этой статье разберём 7 способов удаления промежутков — от элементарной функции ЗАМЕНИТЬ до сложных формул с регулярными выражениями (для Excel 365). Вы узнаете, как очистить данные без потери форматирования, почему иногда пробелы возвращаются после сохранения файла, и как предотвратить их появление в будущем. Особое внимание уделим скрытым неразрывным пробелам (ASCII 160), которые не удаляются стандартными методами и требуют специальных приёмов.
1. Быстрая замена через Найти и заменить (Ctrl+H)
Самый простой метод, который работает в 90% случаев. Подходит для удаления обычных пробелов (ASCII 32) между цифрами, но бессилен против неразрывных пробелов и табуляций.
Алгоритм действий:
- Выделите диапазон ячеек (или всю таблицу сочетанием
Ctrl+A). - Нажмите
Ctrl+Hдля вызова окна замены. - В поле
Найтивведите один пробел (нажмите клавишуSpace). - Поле
Заменить наоставьте пустым. - Нажмите
Заменить всё.
⚠️ Внимание: Если после замены числа превратились в даты (например, 1 000 стало 1-янв), значит Excel автоматически применил формат даты. Чтобы исправить:
⚠️ Выделите проблемные ячейки → ПКМ →
Формат ячеек→ Выберите категориюТекстовыйилиЧисловой.
Выполнена ли замена во всех листах книги?|Сохранился ли числовой формат?|Нет ли "обрубленных" знаков после удаления пробелов (например, 12345678 → 1.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
Как использовать:
- Выделите диапазон ячеек.
- Запустите макрос через
Alt+F8→ выберитеУдалитьПробелыМеждуЦифрами→Выполнить.
⚠️ Внимание: Макрос изменит исходные данные без возможности отмены (если не сохранена предыдущая версия файла). Перед запуском:
⚠️ Создайте копию листа (
ПКМ на ярлыке листа → Переместить/скопировать → Поставить галочку "Создать копию") или сохраните файл с другим именем.
6. Power Query: профессиональный инструмент для импорта данных
Если пробелы между цифрами появляются при импорте данных из CSV, XML или баз данных, лучшее решение — настроить очистку на этапе загрузки через Power Query:
Инструкция:
- Перейдите на вкладку
Данные→Получить данные→ выберите источник. - В открывшемся редакторе Power Query выделите столбец с пробелами.
- На вкладке
ПреобразованиевыберитеЗаменить значения. - В поле
Значение для поискавведите пробел, вЗаменаоставьте пустым. - Для неразрывных пробелов используйте
#(00A0)в поле поиска. - Нажмите
Закрыть и загрузить.
Преимущества метода:
- 🔹 Очистка происходит автоматически при каждом обновлении данных.
- 🔹 Сохраняется история преобразований (можно откатиться к предыдущей версии).
- 🔹 Поддерживаются сложные правила (например, удалять пробелы только в числовых последовательностях длиной >3 символа).
7. Проблемы после очистки: почему числа превращаются в даты или научную нотацию
Частая ошибка после удаления пробелов — Excel автоматически преобразует числа в даты или экспоненциальный формат (например, 123456789 → 1,23E+08). Это происходит из-за:
- 🔹 Формата ячейки (по умолчанию
ОбщийилиДата). - 🔹 Превышения лимита знаков (Excel отображает максимум 11 цифр в числовом формате).
- 🔹 Наличия скрытых символов (например, дефиса или точки, которые Excel воспринимает как разделители даты).
Решения:
| Проблема | Причина | Решение |
|---|---|---|
| Число стало датой | Формат ячейки Дата или текст с разделителями (-, /) |
Примените формат Текстовый ДО очистки пробелов |
Научная нотация (1,23E+08) |
Число превышает 11 знаков | Используйте формат Текстовый или увеличьте разрядность через Формат ячеек → Числовой → Число десятичных знаков: 0 |
| Нули в начале числа исчезли | Excel игнорирует ведущие нули в числовом формате | Преобразуйте ячейку в текст с помощью =ТЕКСТ(A1; "0") или примените формат Текстовый |
FAQ: Частые вопросы по удалению пробелов в Excel
Почему после замены пробелов числа выравниваются по левому краю, как текст?
Это означает, что Excel автоматически применил текстовый формат к ячейкам. Чтобы вернуть числовой формат:
- Выделите проблемные ячейки.
- Нажмите
Ctrl+1(или ПКМ →Формат ячеек). - Выберите категорию
ЧисловойилиФинансовый.
Если числа не "встают на место", проверьте их на наличие скрытых символов через формулу =КОДСИМВ(ЛЕВСИМВ(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); "").