Выгрузка данных из 1С:Предприятие в Microsoft Excel часто сопровождается неприятным сюрпризом: числа приходят с пробелами в качестве разделителей тысяч. Например, вместо 1000000 вы получаете 1 000 000. Такие значения Excel воспринимает как текст, что ломает формулы, сводные таблицы и графики. Проблема усугубляется, если выгружаются сотни строк — ручная правка отнимает часы.

В этой статье разберём 5 проверенных способов автоматизированного удаления пробелов из чисел, включая формулы Excel, макросы VBA, инструменты Power Query и настройки выгрузки непосредственно в . Особое внимание уделим нюансам, которые возникают при работе с большими объёмами данных (10 000+ строк) и специфическими форматами (валюта, проценты).

Важно: методы подходят для всех версий Excel (2010–2023) и актуальных релизов 1С:Предприятие 8.3. Если вы используете облачную версию 1С:Fresh или Excel Online, некоторые способы могут потребовать адаптации — об этом предупредим отдельно.

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

Проблема кроется в настройках региональных стандартов и форматов данных. 1С:Предприятие по умолчанию следует российским стандартам отображения чисел, где пробел используется как разделитель тысяч (в отличие от англоязычных систем, где для этого служит запятая). При экспорте в Excel эти настройки сохраняются, но:

  • 📌 Excel по умолчанию ожидает числа без пробелов или с запятыми/точками в качестве разделителей.
  • 📌 Если ячейка содержит пробел, Excel автоматически присваивает ей текстовый формат, блокируя математические операции.
  • 📌 В некоторых версиях пробелы добавляются даже к дробным числам (например, 1 000,50 вместо 1000.5).

Ключевой момент: проблема не в ошибке программы, а в конфликте форматов. Решить её можно либо на этапе выгрузки из , либо уже в Excel. Далее рассмотрим оба подхода.

⚠️ Внимание: Если вы работаете с 1С:Бухгалтерия 3.0 или 1С:ERP, проверьте настройки обмена данными в разделе Администрирование → Печатные формы, отчеты и обработки → Настройки обмена. В некоторых конфигурациях есть опция "Сохранять формат чисел при экспорте" — её отключение может решить проблему без дополнительных манипуляций в Excel.
📊 Как часто вы сталкиваетесь с пробелами в числах при выгрузке из 1С?
Ежедневно
Раз в неделю
Редико
Никогда

Способ 1: Замена пробелов через "Найти и заменить" (самый быстрый)

Если вам нужно однократно очистить небольшой файл (до 5 000 строк), самый простой способ — стандартная функция Excel Найти и заменить. Она работает во всех версиях программы и не требует знаний формул.

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

Excel покажет количество выполненных замен. После этого числа автоматически преобразуются в числовой формат (если этого не произошло, выделите ячейки и выберите формат Числовой на вкладке Главная).

☑️ Проверка после замены пробелов

Выполнено: 0 / 4
⚠️ Внимание: Этот метод не работает с неразрывными пробелами (которые иногда добавляет при экспорте в PDF или HTML). Чтобы удалить их, в поле Найти введите Alt + 0160 (удерживая Alt, наберите 0160 на цифровой клавиатуре).

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

  • ⚡ Быстро (занимает секунды даже для 1 000 строк).
  • 🛠 Не требует знаний формул или VBA.
  • 🔄 Работает в Excel Online и мобильных версиях.

Недостатки:

  • 🚫 Не подходит для автоматизации (придётся повторять вручную).
  • 📉 Может сломать данные, если пробелы используются как разделители в тексте (например, в адресах).

Способ 2: Формулы Excel для удаления пробелов и преобразования в числа

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

Вариант 1: Функция ЗАМЕНИТЬ + ЗНАЧЕН

Самая универсальная формула:

=ЗНАЧЕН(ЗАМЕНИТЬ(A1; " "; ""))

Как это работает:

  1. ЗАМЕНИТЬ(A1; " "; "") — удаляет все пробелы из ячейки A1.
  2. ЗНАЧЕН() — преобразует результат в число.

Скопируйте формулу в соседний столбец, затем протяните её вниз. После этого можно заменить столбец с формулами на значения (Копировать → Специальная вставка → Значения).

Вариант 2: Функция ПОДСТАВИТЬ (для неразрывных пробелов)

Если в данных есть неразрывные пробелы (код CHAR(160)), используйте:

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

Вариант 3: Комбинация для дробных чисел

Если числа содержат и пробелы, и запятые (например, 1 000,50), сначала замените запятую на точку (для английского формата), затем удалите пробелы:

=ЗНАЧЕН(ЗАМЕНИТЬ(ПОДСТАВИТЬ(A1; ","; "."); " "; ""))
Исходные данные Формула Результат
1 000 500 =ЗНАЧЕН(ЗАМЕНИТЬ(A1; " "; "")) 1000500 (числовой формат)
2 500,30 =ЗНАЧЕН(ЗАМЕНИТЬ(ПОДСТАВИТЬ(A1; ","; "."); " "; "")) 2500.3 (числовой формат)
1 000 000 € =ЗНАЧЕН(ПОДСТАВИТЬ(ЗАМЕНИТЬ(A1; " "; ""); "€"; "")) 1000000
💡

Если после применения формул числа отображаются с экспонентой (например, 1E+06 вместо 1000000), увеличьте ширину столбца или измените формат ячейки на "Числовой" без разделителей.

Преимущества формульного подхода:

  • 🔄 Позволяет обрабатывать данные выборочно (например, только ячейки с пробелами).
  • 📊 Сохраняет исходные данные нетронутыми.
  • 🤖 Легко автоматизируется через Power Query (см. Способ 4).

Способ 3: Макрос VBA для массовой очистки

Если вы регулярно работаете с большими файлами (10 000+ строк), ручная замена или формулы могут тормозить Excel. В этом случае поможет макрос VBA, который очистит все пробелы в выбранном диапазоне за секунды.

Инструкция:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. В меню выберите Insert → Module.
  3. Вставьте следующий код:
    Sub RemoveSpacesFromNumbers()
    

    Dim rng As Range

    Dim cell As Range

    Set rng = Selection

    For Each cell In rng

    If IsNumeric(Replace(cell.Value, " ", "")) Then

    cell.Value = Val(Replace(cell.Value, " ", ""))

    cell.NumberFormat = "0" ' Формат без разделителей

    End If

    Next cell

    End Sub

  4. Закройте редактор VBA.
  5. Выделите диапазон с числами и запустите макрос (Alt + F8 → Выбрать RemoveSpacesFromNumbers → Выполнить).

Макрос проверяет, можно ли преобразовать значение в число после удаления пробелов, и применяет изменения только к таким ячейкам. Это защищает от ошибок, если в диапазоне есть текстовые данные с пробелами (например, ФИО или адреса).

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

Замените строку cell.Value = Val(Replace(cell.Value, " ", "")) на:

cell.Value = Val(Replace(cell.Value, Chr(160), ""))

где Chr(160) — это неразрывный пробел.

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

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

  • ⚡ Обрабатывает десятки тысяч строк за секунды.
  • 🔒 Безопасен для текстовых данных (не ломает ФИО, адреса и т.д.).
  • 📌 Можно доработать под специфические форматы (например, валюту).

Недостатки:

  • 🛠 Требует базовых знаний VBA (или готовности скопировать код).
  • 🚫 Не работает в Excel Online.

Способ 4: Power Query — автоматическая очистка при импорте

Power Query (в Excel 2016+ и Excel 365) — это инструмент для ETL-обработки (извлечение, преобразование, загрузка данных). Он позволяет создавать повторяемые сценарии очистки, которые будут применятся при каждом импорте данных из .

Пошаговая инструкция:

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

Чтобы автоматизировать процесс:

  • 📌 Сохраните запрос (Главная → Закрыть и загрузить → Закрыть и загрузить в...).
  • 🔄 При следующем импорте данных из просто обновите запрос (Данные → Обновить все).
💡

Power Query — единственный способ, который позволяет сохранить шаги очистки и применять их автоматически к новым данным. Это идеальное решение для еженедельных/ежедневных отчётов.

Дополнительные возможности Power Query:

  • 🔧 Замена запятых на точки для дробных чисел.
  • 📊 Разделение столбцов (например, отделение валюты от суммы).
  • 🔍 Фильтрация пустых строк или ошибочных значений.
⚠️ Внимание: Если вы используете 1С:УТ 11 или 1С:ERP, проверьте, не добавляет ли конфигурация непечатаемые символы (например, табуляцию или перевод строки) вместо пробелов. В Power Query их можно удалить через Преобразование → Чистка → Обрезать или функцию Text.Clean в редакторе формул.

Способ 5: Настройка выгрузки непосредственно в 1С

Самый корректный способ решить проблему — настроить выгрузку данных в так, чтобы числа экспортировались без пробелов. Это избавит от необходимости постобработки в Excel.

Вариант 1: Изменение формата выгрузки в обработке

Если вы используете стандартную обработку выгрузки (например, ВыгрузкаДанныхВExcel):

  1. Откройте обработку в режиме 1С:Предприятие.
  2. Найдите параметр ФорматЧисел (или аналогичный).
  3. Установите значение ЧислоБезРазделителей или АнглийскийФормат.
  4. Сохраните настройки и повторите выгрузку.

Вариант 2: Редактирование макета выгрузки

Для пользовательских отчётов:

  1. Откройте макет отчёта в конфигураторе (Файл → Открыть конфигурацию).
  2. Найдите поле с числовым значением и измените его формат на ЧГ0 (число без разделителей).
  3. Сохраните изменения и обновите отчёт.

Вариант 3: Использование запроса с форматированием

Если данные выгружаются через запрос, добавьте функцию Формат() с параметром "ЧГ=0":

ВЫБРАТЬ

Формат(Сумма, "ЧГ=0") КАК СуммаБезПробелов

ИЗ

Документ.РеализацияТоваровУслуг

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

⚠️ Внимание: В некоторых конфигурациях (например, 1С:Бухгалтерия 3.0) изменения формата выгрузки могут потребовать прав доступа Администратор или Редактирование конфигурации. Если у вас нет таких прав, обратитесь к IT-отделу или партнёру .

Преимущества настройки в :

  • 🎯 Решает проблему на корню — данные приходят в Excel уже в правильном формате.
  • 🔄 Не требует постобработки.
  • 📈 Подходит для автоматизированных обменов (например, через RPA или 1С:EDT).

Сравнение методов: какой выбрать?

Выбор способа зависит от объёма данных, частоты обработки и ваших технических навыков. Ниже — сравнительная таблица:

Метод Скорость Автоматизация Сложность Подходит для
Найти и заменить ⚡ Быстро ❌ Нет ⭐⭐⭐ (просто) Разовые задачи, небольшие файлы
Формулы Excel 🐢 Медленно для больших данных ⚠️ Частично (через Power Query) ⭐⭐⭐⭐ (нужны знания функций) Регулярная обработка с сохранением исходников
Макрос VBA ⚡⚡ Очень быстро ✅ Да ⭐⭐⭐⭐ (нужны базовые навыки VBA) Большие файлы, повторяющиеся задачи
Power Query ⚡ Быстро ✅ Полная ⭐⭐⭐⭐ (нужно изучить интерфейс) Автоматизированные отчёты, ETL
Настройка 1С ⚡ Мгновенно ✅ Полная ⭐⭐⭐⭐⭐ (требует доступа к конфигурации) Постоянное решение для всех пользователей

Рекомендации:

  • 📌 Для разовой очистки небольшого файла используйте Найти и заменить.
  • 📊 Если нужно сохранить исходные данные и создать "чистую" копию — формулы Excel.
  • 🤖 Для еженедельных отчётов (10 000+ строк) настройте Power Query или макрос VBA.
  • 🔧 Если вы администратор 1С, измените формат выгрузки на уровне конфигурации.
💡

Наиболее универсальное решение — комбинация Power Query (для импорта) и настройки 1С (для экспорта). Это гарантирует чистые данные на обоих этапах обмена.

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

При удалении пробелов из чисел пользователи часто сталкиваются с неожиданными проблемами. Вот самые распространённые из них и способы их решения:

1. Числа превращаются в даты

Если после удаления пробелов Excel преобразует числа в даты (например, 10-100 становится 10 окт), значит:

  • 📅 В данных остались дефисы или точки, которые Excel воспринял как разделители дат.
  • 🔢 Решение: Используйте формулу =ЗНАЧЕН(ПОДСТАВИТЬ(ЗАМЕНИТЬ(A1; " "; ""); "-"; "")) или предварительно отформатируйте столбец как Текстовый.

2. Появляется ошибка #ЗНАЧ!

Ошибка #ЗНАЧ! означает, что Excel не может преобразовать текст в число. Причины:

  • 🔍 В ячейке остались невидимые символы (неразрывные пробелы, табуляция).
  • 💰 Число содержит символы валют (например, 1 000 $).
  • 📌 Решение: Используйте =ЧИСТ(ЗАМЕНИТЬ(A1; " "; "")) для удаления непечатаемых символов или вручную очистите данные от посторонних знаков.

3. Формулы не протягиваются на все строки

Если при протягивании формулы вниз она "застревает" на определённой строке:

  • 🔗 Проверьте, нет ли в данных объединённых ячеек.
  • 📉 Убедитесь, что в настройках Excel отключён Автоматический расчёт (Формулы → Параметры вычислений → Автоматически).
  • 🔄 Решение: Выделите диапазон, нажмите Ctrl + D (заполнить вниз).

4. После очистки числа отображаются как ######

Символы ###### означают, что:

  • 📏 Ширина столбца слишком мала для отображения числа.
  • 🕒 Число отрицательное или содержит ошибку формата.
  • 🔢 Решение: Расширьте столбец или проверьте формат ячейки (Числовой без разделителей).
⚠️ Внимание: Если вы работаете с очень большими числами (более 15 знаков), Excel может округлить их до научного формата (например, 1.23E+15). Чтобы избежать этого, предварительно отформатируйте ячейки как Текстовый, а затем примените формулу =ЗАМЕНИТЬ(A1; " "; "") без ЗНАЧЕН().

FAQ: Ответы на частые вопросы

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

Да, но для этого нужно отредактировать обработку выгрузки в . В макете выгрузки найдите параметр, отвечающий за формат чисел, и установите значение ЧГ0 (число без разделителей). Если вы используете стандартную обработку, создайте её копию и модифицируйте:

  1. Откройте обработку в конфигураторе.
  2. Найдите процедуру, где формируется строка для CSV.
  3. Добавьте функцию СтрЗаменить(Строка(Число), " ", "") перед записью в файл.

Альтернатива: экспортируйте данные в .xlsx вместо .csv и очищайте пробелы в Excel (см. Способ 1 или 2).

Почему после удаления пробелов числа отображаются с точкой вместо запятой (например, 1.000 вместо 1,00)?

Это происходит из-за региональных настроек Excel. Точка как разделитель тысяч используется в англоязычной локализации. Чтобы вернуть запятую:

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

Если нужно сохранить русский формат чисел, но убрать пробелы, используйте формулу:

=ПОДСТАВИТЬ(ЗАМЕНИТЬ(A1; " "; ""); "."; ",")
Как удалить пробелы в числах на Mac (Excel для macOS)?

Все описанные методы работают и в Excel для Mac, но есть нюансы:

  • 🔹 Сочетание клавиш для вызова Найти и заменить: Command + H (вместо Ctrl + H).
  • 🔹 В Excel 2016–2019 для Mac нет встроенного Power Query. Установите надстройку Power Query из Microsoft Store или используйте альтернативы (например, Apple Numbers с функцией ЗАМЕНИТЬ).
  • 🔹 Макросы VBA работают, но для их включения нужно разрешить выполнение скриптов в Системных настройках → Защита и безопасность.

Для Excel Online на Mac доступны только методы Найти и заменить и формулы.

Можно ли автоматизировать очистку пробелов для еженедельных отчётов?

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

  1. Power Query:
    • Создайте запрос, который подключается к файлу/базе 1С и очищает пробелы при каждом обновлении.
    • Настройте автоматическое обновление по расписанию (Данные → Обновить все → Свойства → Параметры обновления).
  • Макрос VBA с триггером:
    Private Sub Workbook_Open()
    

    Call RemoveSpacesFromNumbers ' Вызов вашего макроса при открытии файла

    End Sub

    Этот код будет запу