Почему пробелы между цифрами портят данные и как это исправить
Вы скачали отчёт из 1С, получили таблицу от коллеги или импортировали данные из CRM — и вдруг обнаружили, что числа выглядят как 1 000 500 вместо 1000500. Проблема? Ещё какая! Excel воспринимает такие значения как текст, а не как числа. Это ломает формулы, сортировку и даже сводные таблицы. В худшем случае вы получите ошибку #ЗНАЧ! при попытке сложить "числа" с пробелами.
В этой статье разберём 7 способов убрать пробелы между цифрами — от элементарных (подойдут новичку) до продвинутых (для обработки тысяч строк за секунды). А ещё выясним, почему пробелы вообще появляются и как предотвратить их возникновение в будущем. Спойлер: виноваты не только пользователи, но и настройки Excel по умолчанию.
Прежде чем приступать к чистке данных, проверьте два момента:
1. Убедитесь, что пробелы действительно между цифрами, а не являются разделителями тысяч (например, в формате 1 000 000 для удобства чтения).
2. Если данные импортированы из внешнего источника (сайта, PDF, базы), возможно, пробелы — это неразрывные (специальный символ), и стандартная замена не сработает.
Способ 1: Ручная замена через "Найти и заменить" (для небольших таблиц)
Самый простой метод, который не требует знания формул. Подходит, если пробелов мало и они обычные (не неразрывные). Как это работает:
- Выделите диапазон ячеек с проблемами (или нажмите
Ctrl + A, чтобы выбрать весь лист). - Сочетание клавиш
Ctrl + H(или вкладкаГлавная → Найти и выделить → Заменить). - В поле
Найтивведите один пробел (просто нажмите клавишуSpace). - Поле
Заменить наоставьте пустым. - Нажмите
Заменить всё.
⚠️ Внимание: Этот способ удалит все пробелы в выбранных ячейках, включая те, что стоят между словами (например, в ячейке Итого 1 000 руб. получится Итого1000руб.). Если в ваших данных смешаны числа и текст, используйте более точные методы (см. ниже).
Выделил только числовые столбцы
Проверял наличие неразрывных пробелов (Alt+0160)
Создал резервную копию данных
Убедился, что в ячейках нет полезных пробелов между словами-->
Способ 2: Функция ПОДСТАВИТЬ (для точечной очистки)
Если ручная замена слишком рискованна, используйте функцию =ПОДСТАВИТЬ(). Она позволяет заменить пробелы только в тех ячейках, где они мешают, не затрагивая остальной текст. Формула:
=ПОДСТАВИТЬ(A1; " "; "")
Где: A1 — ячейка с исходными данными, " " — пробел (то, что ищем), "" — пустая строка (на что заменяем).
Преимущества метода:
- 🔹 Работает даже с неразрывными пробелами (если указать их код
CHAR(160)вместо" "). - 🔹 Не портит текстовые данные в тех же ячейках.
- 🔹 Можно комбинировать с другими функциями (например,
=ЗНАЧЕН(ПОДСТАВИТЬ(A1; " "; "")), чтобы сразу преобразовать текст в число).
Как вставить неразрывный пробел в формулу?
Используйте функцию CHAR(160). Например:
=ПОДСТАВИТЬ(A1; CHAR(160); "")
Это удалит неразрывные пробелы, которые часто встречаются в данных, скопированных с веб-страниц.
Способ 3: Преобразование текста в числа с удалением пробелов
Если после удаления пробелов числа всё равно остаются в текстовом формате (выровнены по левому краю, зелёный треугольник в углу ячейки), их нужно преобразовать в числовой формат. Сделать это можно тремя способами:
| Метод | Как применить | Когда использовать |
|---|---|---|
ЗНАЧЕН() |
|
Для формул, когда нужно сразу получить число |
| Текст по столбцам | Данные → Текст по столбцам → Готово (на 3-м шаге выберите формат "Общий") |
Для больших диапазонов (тысячи строк) |
| Умножение на 1 | Введите 1 в пустой ячейке, скопируйте её, выделите диапазон с числами → ПКМ → Специальная вставка → Умножить |
Для быстрого исправления без формул |
⚠️ Внимание: Если после преобразования числа отображаются как 1.00E+06 (научный формат), измените формат ячейки на Числовой через контекстное меню (ПКМ → Формат ячеек).
Способ 4: Power Query для массовой обработки (Excel 2016+)
Если у вас Excel 2016 или новее, инструмент Power Query (вкладка Данные → Получить данные) справится с пробелами в тысячах строк за секунды. Алгоритм:
- Выделите диапазон →
Данные → Из таблицы/диапазона(Excel создаст таблицу, если её нет). - В открывшемся редакторе Power Query выделите столбец с пробелами.
- На вкладке
ПреобразованиевыберитеЗаменить значения. - В поле
Значение для поискавведите пробел, вЗаменаоставьте пустым. - Нажмите
Закрыть и загрузить.
Преимущества Power Query:
- 🔹 Обрабатывает миллионы строк без тормозов.
- 🔹 Сохраняет историю преобразований — можно обновить данные одним кликом.
- 🔹 Поддерживает неразрывные пробелы и другие непечатаемые символы.
Минус: если вы никогда не пользовались Power Query, придётся потратить 10 минут на изучение интерфейса. Но результат того стоит!
Способ 5: Макрос VBA для автоматической очистки (для продвинутых)
Если пробелы между цифрами появляются регулярно, имеет смысл написать макрос, который будет очищать данные в один клик. Ниже код для удаления всех пробелов в выбранных ячейках (включая неразрывные):
Sub УдалитьПробелыМеждуЦифрами()
Dim rng As Range
Dim cell As Range
Set rng = Selection
For Each cell In rng
If IsNumeric(Replace(Replace(cell.Value, " ", ""), Chr(160), "")) Then
cell.Value = Replace(Replace(cell.Value, " ", ""), Chr(160), "")
End If
Next cell
End Sub
Как использовать:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Вернитесь в Excel, выделите диапазон с пробелами.
- Запустите макрос через
Alt + F8(или назначьте ему кнопку на панели быстрого доступа).
⚠️ Внимание: Макрос удаляет пробелы только в тех ячейках, где после их удаления остаётся число. Это защищает текстовые данные от случайного повреждения. Если нужно очистить все пробелы без проверки, замените строку If IsNumeric... на простой цикл cell.Value = Replace(...).
Способ 6: Формула массива для сложных случаев
Если пробелы между цифрами комбинируются с другими символами (точки, запятые, тире), поможет формула массива:
=СЦЕПИТЬ(ЕСЛИОШИБКА(--ПСТР(A1; СТРОКА(D1:D10); 1); ""))
Введите её как формулу массива: после ввода нажмите Ctrl + Shift + Enter (в новых версиях Excel просто Enter). Формула работает так:
- Разбивает текст в ячейке
A1на отдельные символы. - Пробует преобразовать каждый символ в число (
--). - Если получается (т.е. символ — цифра), добавляет его к результату.
- Если нет (пробел, буква, знак), игнорирует.
Пример: из ячейки А123 Б45 6!7 формула вернёт 1234567. Этот метод универсален, но ресурсоёмок — не используйте его для столбцов с десятками тысяч строк.
Как предотвратить появление пробелов в будущем
Лучше один раз настроить Excel, чем постоянно чистить данные. Вот 4 профилактических мероприятия:
- 📌 Отключите автоматическое форматирование чисел.
Перейдите в
Файл → Параметры → Дополнительнои снимите галочкуАвтоматически добавлять разделитель групп разрядов. - 📌 Используйте формат "Текст" для импорта.
При импорте данных из внешних источников выбирайте формат
Текстдля столбцов с числами, а потом преобразуйте их черезЗНАЧЕН(). - 📌 Настройте региональные параметры.
В
Панель управления Windows → Регион → Дополнительные параметрыпроверьте, что в качествеРазделителя групп разрядовстоит не пробел, а запятая или точка. - 📌 Создайте шаблон с правильными форматами.
Сохраните пустой файл Excel с заранее настроенными числовыми форматами и используйте его как основу для новых отчётов.
⚠️ Внимание: Если вы работаете с данными из 1С, SAP или других бухгалтерских систем, пробелы как разделители тысяч могут быть "вшиты" в экспорт. В этом случае настройте правила экспорта в самой программе-источнике, а не бороться с последствиями в Excel.
FAQ: Частые вопросы о пробелах между цифрами
Почему после удаления пробелов числа отображаются как ######?
Это значит, что столбец слишком узкий для отображения числа. Растяните его вручную или используйте автоподбор ширины (Главная → Формат → Автоподбор ширины столбца). Также проверьте, не установлен ли в ячейке текстовый формат — измените его на Общий или Числовой.
Можно ли удалить пробелы только между цифрами, но оставить их в тексте?
Да, для этого подойдёт формула с проверкой символов:
=СЦЕПИТЬ(ЕСЛИ(И(КОДСИМВ(ПСТР(A1;СТРОКА(D1:D20);1))>=48; КОДСИМВ(ПСТР(A1;СТРОКА(D1:D20);1))<=57); ПСТР(A1;СТРОКА(D1:D20);1); ЕСЛИ(ПСТР(A1;СТРОКА(D1:D20);1)=" "; ""; ПСТР(A1;СТРОКА(D1:D20);1))))
Введите её как формулу массива (Ctrl+Shift+Enter). Она удаляет пробелы только между цифрами (коды 48–57 в таблице ASCII).
Почему функция ПОДСТАВИТЬ не удаляет пробелы в некоторых ячейках?
Скорее всего, в этих ячейках неразрывные пробелы (код CHAR(160)). Замените в формуле обычный пробел на CHAR(160):
=ПОДСТАВИТЬ(A1; CHAR(160); "")
Или удалите оба типа пробелов:
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1; " "; ""); CHAR(160); "")
Как удалить пробелы в Google Таблицах?
В Google Sheets используйте ту же функцию =SUBSTITUTE() (аналог ПОДСТАВИТЬ), но с английской нотацией:
=SUBSTITUTE(A1; " "; "")
Для преобразования текста в число добавьте =VALUE():
=VALUE(SUBSTITUTE(A1; " "; ""))
Можно ли вернуть пробелы обратно, если они были нужны для форматирования?
Да, используйте функцию =ФОРМАТ() или настройте условное форматирование для добавления разделителей тысяч без изменения самих данных. Пример:
=ФОРМАТ(ЗНАЧЕН(ПОДСТАВИТЬ(A1; " "; "")); "# ##0")
Эта формула удалит пробелы, преобразует текст в число и вернёт разделители в нужных местах.