Выгрузили данные из 1С:Предприятие в Excel, а вместо чисел — странные значения с пробелами? Например, 1 234 567,89 вместо 1234567.89? Эта проблема знакома каждому, кто работает с финансовыми отчётами, прайс-листами или аналитическими выборками. Проблема возникает из-за особенностей форматирования чисел в — система добавляет разделители тысяч для удобства чтения, но Excel воспринимает их как текст, а не как числовые данные.

В этой статье вы найдёте 5 проверенных способов удалить пробелы из чисел — от простых функций до автоматизации через VBA. Мы разберём, почему стандартная замена (Ctrl+H) не всегда работает, как сохранить разряды после запятой, и что делать, если пробелы скрыты невидимыми символами. А ещё — как избежать ошибок при дальнейшей работе с очищенными данными.

Важно: все методы протестированы на Excel 2016–2023 и Microsoft 365, а также совместимы с выгрузками из 1С:Бухгалтерия 8.3, 1С:УТ 11, 1С:ЗУП 3.1 и других конфигураций. Если вы работаете с Google Таблицами — в конце статьи есть отдельный раздел с нюансами.

Почему в Excel появляются пробелы в числах из 1С

Проблема кроется в региональных настройках и форматах данных. В числа отображаются с разделителями тысяч (пробел или точка) согласно стандартам ГОСТ Р 7.0.97-2016 для финансовой документации. При выгрузке в Excel происходит следующее:

  • 📌 Текстовый формат: 1С экспортирует числа как строку (например, "1 000 500,20"), а не как числовой тип.
  • 📌 Конфликт разделителей: в 1С разделитель тысяч — пробел, а дробной части — запятая. В Excel по умолчанию разделитель дробной части — точка (в английской локали).
  • 📌 Невидимые символы: иногда вместе с пробелами экспортируются неразрывные пробелы ( ) или символы табуляции.

Если просто заменить пробелы на ничего (Ctrl+H → найти " " → заменить на ""), Excel может:

  • ❌ Преобразовать 1 000 в 1 (если пробел был частью формата валюты).
  • ❌ Оставить "липкие" пробелы (неразрывные), которые не удаляются стандартной заменой.
  • ❌ Исказить числа с десятичными разрядами (например, 1 000,501000.5).
📊 Как часто вы сталкиваетесь с пробелами в числах из 1С?
Каждый день
Раз в неделю
Редко, но метко
Никогда не было такой проблемы

Способ 1: Быстрая замена пробелов (если они обычные)

Самый простой метод — использовать стандартную замену (Ctrl+H). Он подходит, если пробелы в числах — обычные (не неразрывные) и не смешаны с другими символами.

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

⚠️ Внимание: если после замены числа не преобразовались в числовой формат (остались выровнены по левому краю), выполните дополнительный шаг:

  1. Выделите столбец → правый клик → Формат ячеек.
  2. Выберите категорию Числовой или Финансовый.
  3. Укажите нужное количество десятичных знаков.
💡

Если замена не сработала, попробуйте в поле "Найти" ввести (пробел) + Alt+0160 на цифровой клавиатуре — это неразрывный пробел.

Способ 2: Функция ПОДСТАВИТЬ для сложных случаев

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

Формула для удаления пробелов:

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

Где:

  • A1 — ячейка с исходным значением.
  • " " — пробел (можно заменить на CHAR(160) для неразрывного пробела).
  • "" — пустая строка (удаление).

Чтобы автоматически преобразовать результат в число, оберните формулу в ЗНАЧЕН():

=ЗНАЧЕН(ПОДСТАВИТЬ(A1; " "; ""))
Как удалить все нечисловые символы?

Используйте комбинацию функций:

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

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

Способ 3: Текст по столбцам (если пробелы — разделители)

Если числа в 1С экспортировались с пробелами как разделителями (например, 12 345 678), а не как частью формата, используйте инструмент Текст по столбцам:

  1. Выделите столбец с данными.
  2. Перейдите в Данные → Текст по столбцам.
  3. Выберите С разделителямиДалее.
  4. Снимите все галочки, кроме ПробелГотово.

⚠️ Внимание: этот метод разобьёт число на отдельные ячейки (например, 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 — инструмент для очистки и трансформации данных. Он сохраняет все шаги и позволяет обновлять данные одним кликом.

  1. Выделите таблицу → Данные → Из таблицы/диапазона (в Excel 2016+).
  2. В открывшемся редакторе Power Query выберите столбец с числами.
  3. Перейдите на вкладку ПреобразованиеЗаменить значения.
  4. В поле Значение для поиска введите пробел, в Замена оставьте пусто → ОК.
  5. Выберите столбец → Преобразование → Тип данных → Число.
  6. Нажмите Закрыть и загрузить.

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

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

  1. Нажмите Alt+F11 → откройте Редактор VBA.
  2. Вставьте код в новый модуль (Вставка → Модуль).
  3. Выделите данные в Excel → запустите макрос (F5).

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

💡

VBA-скрипт — единственный метод, который гарантированно удаляет все типы пробелов (включая неразрывные и скрытые) и автоматически преобразует текст в числа.

Частые ошибки и как их избежать

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

  • 🔢 Числа отображаются как даты: Excel автоматически преобразует числа вида 1-2 или 31.12 в даты. Решение: перед преобразованием в числовой формат добавьте апостроф ('1-2) или используйте текстовый формат.
  • 🔢 Потеря точности: при удалении пробелов из чисел с большим количеством знаков (например, 1 000 000 000 000) Excel может округлить значение. Решение: используйте формат Текстовый для таких чисел.
  • 🔢 Отрицательные числа с пробелами: если число было -1 234, после удаления пробела получится -1234 (корректно), но иногда знак минус "отрывается". Решение: проверяйте формулы на отрицательных значениях.

💡 Совет для бухгалтеров: если вы работаете с финансовыми отчётами, после очистки пробелов обязательно сверьте контрольные суммы. Например, в проверьте итог по колонке до выгрузки и сравните с суммой в 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. Используйте апостроф перед числом ('1-2).
  3. После очистки вручную измените формат на Числовой.
Как удалить пробелы только в числах, но оставить их в тексте?

Используйте условную обработку с помощью функции =ЕСЛИ():

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

Эта формула проверяет, можно ли преобразовать ячейку в число после удаления пробелов. Если да — очищает пробелы, если нет — оставляет текст без изменений.

Можно ли автоматизировать очистку пробелов при каждом импорте из 1С?

Да, для этого есть два способа:

  1. Power Query: сохраните запрос с шагами очистки и обновляйте данные кнопкой Обновить все.
  2. 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 руб).
  • Используется неправильный разделитель дробной части (запятая вместо точки или наоборот).

Решение: предварительно очистите данные функцией =ПОДСТАВИТЬ() или проверьте содержимое ячейки с помощью =КОДСИМВ().

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

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

  1. Выделите столбец → правый клик → Формат ячеек.
  2. Выберите категорию Числовой или Финансовый.
  3. Поставьте галочку Разделитель групп разрядов.

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