Выгрузили данные из 1С:Предприятие в Excel, а вместо чисел — странные значения с пробелами? Например, 1 234 567,89 вместо 1234567.89? Эта проблема знакома каждому, кто работает с финансовыми отчётами, прайс-листами или аналитическими выборками. Проблема возникает из-за особенностей форматирования чисел в 1С — система добавляет разделители тысяч для удобства чтения, но Excel воспринимает их как текст, а не как числовые данные.
В этой статье вы найдёте 5 проверенных способов удалить пробелы из чисел — от простых функций до автоматизации через VBA. Мы разберём, почему стандартная замена (Ctrl+H) не всегда работает, как сохранить разряды после запятой, и что делать, если пробелы скрыты невидимыми символами. А ещё — как избежать ошибок при дальнейшей работе с очищенными данными.
Важно: все методы протестированы на Excel 2016–2023 и Microsoft 365, а также совместимы с выгрузками из 1С:Бухгалтерия 8.3, 1С:УТ 11, 1С:ЗУП 3.1 и других конфигураций. Если вы работаете с Google Таблицами — в конце статьи есть отдельный раздел с нюансами.
Почему в Excel появляются пробелы в числах из 1С
Проблема кроется в региональных настройках и форматах данных. В 1С числа отображаются с разделителями тысяч (пробел или точка) согласно стандартам ГОСТ Р 7.0.97-2016 для финансовой документации. При выгрузке в Excel происходит следующее:
- 📌 Текстовый формат: 1С экспортирует числа как строку (например,
"1 000 500,20"), а не как числовой тип. - 📌 Конфликт разделителей: в 1С разделитель тысяч — пробел, а дробной части — запятая. В Excel по умолчанию разделитель дробной части — точка (в английской локали).
- 📌 Невидимые символы: иногда вместе с пробелами экспортируются неразрывные пробелы (
) или символы табуляции.
Если просто заменить пробелы на ничего (Ctrl+H → найти " " → заменить на ""), Excel может:
- ❌ Преобразовать
1 000в1(если пробел был частью формата валюты). - ❌ Оставить "липкие" пробелы (неразрывные), которые не удаляются стандартной заменой.
- ❌ Исказить числа с десятичными разрядами (например,
1 000,50→1000.5).
Способ 1: Быстрая замена пробелов (если они обычные)
Самый простой метод — использовать стандартную замену (Ctrl+H). Он подходит, если пробелы в числах — обычные (не неразрывные) и не смешаны с другими символами.
- Выделите столбец с данными.
- Нажмите
Ctrl+H(илиГлавная → Найти и выделить → Заменить). - В поле
Найтивведите пробел (нажмите клавишуSpace). - Поле
Заменить наоставьте пустым. - Нажмите
Заменить всё.
⚠️ Внимание: если после замены числа не преобразовались в числовой формат (остались выровнены по левому краю), выполните дополнительный шаг:
- Выделите столбец → правый клик →
Формат ячеек. - Выберите категорию
ЧисловойилиФинансовый. - Укажите нужное количество десятичных знаков.
Если замена не сработала, попробуйте в поле "Найти" ввести (пробел) + Alt+0160 на цифровой клавиатуре — это неразрывный пробел.
Способ 2: Функция ПОДСТАВИТЬ для сложных случаев
Если пробелы смешаны с другими символами или стандартная замена не работает, используйте функцию =ПОДСТАВИТЬ(). Она позволяет заменить все вхождения одного символа на другой (или удалить их).
Формула для удаления пробелов:
=ПОДСТАВИТЬ(A1; " "; "")
Где:
A1— ячейка с исходным значением." "— пробел (можно заменить наCHAR(160)для неразрывного пробела).""— пустая строка (удаление).
Чтобы автоматически преобразовать результат в число, оберните формулу в ЗНАЧЕН():
=ЗНАЧЕН(ПОДСТАВИТЬ(A1; " "; ""))
Как удалить все нечисловые символы?
Используйте комбинацию функций:
=ЗНАЧЕН(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1; " "; ""); "."; ""); ","; "."))
Эта формула удаляет пробелы, точки и заменяет запятые на точки для корректного преобразования в число.
Способ 3: Текст по столбцам (если пробелы — разделители)
Если числа в 1С экспортировались с пробелами как разделителями (например, 12 345 678), а не как частью формата, используйте инструмент Текст по столбцам:
- Выделите столбец с данными.
- Перейдите в
Данные → Текст по столбцам. - Выберите
С разделителями→Далее. - Снимите все галочки, кроме
Пробел→Готово.
⚠️ Внимание: этот метод разобьёт число на отдельные ячейки (например, 12, 345, 678). Чтобы собрать их обратно:
- В соседнем столбце используйте формулу
=СЦЕПИТЬ(B1;C1;D1)(гдеB1:D1— разделённые части). - Преобразуйте результат в число с помощью
ЗНАЧЕН().
| Исходное значение | После "Текст по столбцам" | Формула объединения | Результат (число) |
|---|---|---|---|
1 234 567 |
1 | 234 | 567 |
=ЗНАЧЕН(СЦЕПИТЬ(B1;C1;D1)) |
1234567 |
10 005,20 |
10 | 005,20 |
=ЗНАЧЕН(ПОДСТАВИТЬ(СЦЕПИТЬ(B1;C1); ","; ".")) |
10005.2 |
Способ 4: Power Query для массовой обработки
Если данных много (тысячи строк), используйте Power Query — инструмент для очистки и трансформации данных. Он сохраняет все шаги и позволяет обновлять данные одним кликом.
- Выделите таблицу →
Данные → Из таблицы/диапазона(в Excel 2016+). - В открывшемся редакторе Power Query выберите столбец с числами.
- Перейдите на вкладку
Преобразование→Заменить значения. - В поле
Значение для поискавведите пробел, вЗаменаоставьте пусто →ОК. - Выберите столбец →
Преобразование → Тип данных → Число. - Нажмите
Закрыть и загрузить.
Power Query автоматически распознаёт неразрывные пробелы и другие непечатаемые символы, которые не удаляются стандартной заменой.
Выгрузить данные из 1С в Excel|Преобразовать диапазон в таблицу (Ctrl+T)|Открыть Power Query (Данные → Из таблицы)|Удалить пробелы (Заменить значения)|Преобразовать тип данных в "Число"|Сохранить запрос для будущих обновлений-->
Способ 5: VBA-скрипт для автоматизации
Если вам регулярно приходится очищать пробелы, напишите макрос на VBA. Он удалит все пробелы (включая неразрывные) и преобразует текст в числа:
Sub УдалитьПробелыИзЧисел()
Dim rng As Range
Dim cell As Range
' Выбираем диапазон с данными (измените на свой)
Set rng = Selection
For Each cell In rng
If VarType(cell.Value) = vbString Then
' Удаляем все пробелы (включая неразрывные)
cell.Value = Replace(cell.Value, " ", "")
cell.Value = Replace(cell.Value, Chr(160), "")
' Преобразуем в число, заменяя запятую на точку
cell.Value = Val(Replace(cell.Value, ",", "."))
End If
Next cell
End Sub
Как использовать:
- Нажмите
Alt+F11→ откройте Редактор VBA. - Вставьте код в новый модуль (
Вставка → Модуль). - Выделите данные в Excel → запустите макрос (
F5).
⚠️ Внимание: макрос безвозвратно изменяет исходные данные. Перед запуском сохраните резервную копию файла или работайте с копией листа.
VBA-скрипт — единственный метод, который гарантированно удаляет все типы пробелов (включая неразрывные и скрытые) и автоматически преобразует текст в числа.
Частые ошибки и как их избежать
Даже после удаления пробелов данные могут вести себя некорректно. Рассмотрим типичные проблемы и решения:
- 🔢 Числа отображаются как даты: Excel автоматически преобразует числа вида
1-2или31.12в даты. Решение: перед преобразованием в числовой формат добавьте апостроф ('1-2) или используйте текстовый формат. - 🔢 Потеря точности: при удалении пробелов из чисел с большим количеством знаков (например,
1 000 000 000 000) Excel может округлить значение. Решение: используйте форматТекстовыйдля таких чисел. - 🔢 Отрицательные числа с пробелами: если число было
-1 234, после удаления пробела получится-1234(корректно), но иногда знак минус "отрывается". Решение: проверяйте формулы на отрицательных значениях.
💡 Совет для бухгалтеров: если вы работаете с финансовыми отчётами, после очистки пробелов обязательно сверьте контрольные суммы. Например, в 1С проверьте итог по колонке до выгрузки и сравните с суммой в Excel после обработки. Расхождения могут указывать на потерю данных.
Особенности работы в Google Таблицах
В Google Таблицах алгоритм очистки пробелов аналогичен, но есть нюансы:
- 📊 Функция
=SUBSTITUTE()работает так же, какПОДСТАВИТЬ()в Excel. - 📊 Для преобразования текста в число используйте
=VALUE()(аналогЗНАЧЕН()). - 📊 Неразрывные пробелы удаляются заменой на
CHAR(160). - 📊 Нет Power Query, но есть
Анализ данных → Очистка данных(бета-версия).
Пример формулы для Google Таблиц:
=VALUE(SUBSTITUTE(SUBSTITUTE(A1; " "; ""); CHAR(160); ""))
В Google Таблицах можно использовать =ARRAYFORMULA(), чтобы применить очистку ко всему столбцу сразу, не копируя формулу в каждую ячейку.
FAQ: Ответы на частые вопросы
Почему после удаления пробелов числа становятся датами?
Excel автоматически преобразует некоторые текстовые значения в даты, если они соответствуют формату (например, 1-2 → 1 февраля, 31.12 → 31 декабря). Чтобы этого избежать:
- Перед очисткой пробелов установите для столбца
Текстовыйформат. - Используйте апостроф перед числом (
'1-2). - После очистки вручную измените формат на
Числовой.
Как удалить пробелы только в числах, но оставить их в тексте?
Используйте условную обработку с помощью функции =ЕСЛИ():
=ЕСЛИ(ЕЧИСЛО(ПОДСТАВИТЬ(A1; " "; "")); ПОДСТАВИТЬ(A1; " "; ""); A1)
Эта формула проверяет, можно ли преобразовать ячейку в число после удаления пробелов. Если да — очищает пробелы, если нет — оставляет текст без изменений.
Можно ли автоматизировать очистку пробелов при каждом импорте из 1С?
Да, для этого есть два способа:
- Power Query: сохраните запрос с шагами очистки и обновляйте данные кнопкой
Обновить все. - VBA-макрос: напишите скрипт, который будет запускаться при открытии файла (используйте событие
Workbook_Open).
Пример макроса для автоматической очистки:
Private Sub Workbook_Open()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Лист1") ' Укажите имя листа
ws.Range("A:A").Replace " ", "" ' Удаляем пробелы в столбце A
ws.Range("A:A").NumberFormat = "0.00" ' Устанавливаем числовой формат
End Sub
Почему функция ЗНАЧЕН() выдаёт ошибку #ЗНАЧ!
Ошибка #ЗНАЧ! появляется, если:
- В ячейке остались невидимые символы (например,
CHAR(160)). - Текст содержит буквы или другие нечисловые символы (например,
1 000 руб). - Используется неправильный разделитель дробной части (запятая вместо точки или наоборот).
Решение: предварительно очистите данные функцией =ПОДСТАВИТЬ() или проверьте содержимое ячейки с помощью =КОДСИМВ().
Как вернуть разделители тысяч после очистки пробелов?
После удаления пробелов и преобразования в числа вы можете вернуть разделители через форматирование:
- Выделите столбец → правый клик →
Формат ячеек. - Выберите категорию
ЧисловойилиФинансовый. - Поставьте галочку
Разделитель групп разрядов.
Это добавит разделители визуально, не изменяя сами данные. В формулах и вычислениях числа будут использоваться без пробелов.