Убираем пробелы между цифрами в Excel после экспорта из 1С: 5 работающих методов

Копирование данных из 1С:Предприятие в Microsoft Excel часто приводит к неожиданным проблемам — особенно когда речь идет о числовых значениях. Одна из самых распространённых ошибок: Excel автоматически добавляет неразрывные пробелы между группами цифр (например, "1 000 500" вместо "1000500"), что ломает формулы, сортировку и сводные таблицы. В этой статье разберём, почему так происходит и как исправить ситуацию без потери данных.

Проблема кроется в настройках по умолчанию: программа форматирует числа с разделителями тысяч для удобства чтения, но при копировании эти разделители "переезжают" в Excel как обычные символы. Если вы пытались просто удалить пробелы вручную или через функцию ЗАМЕНИТЬ(), но ничего не вышло — вы не одиноки. Дело в том, что использует неразрывные пробелы (Unicode-символ U+00A0), которые стандартные функции Excel не распознают. Далее — подробные инструкции для всех версий Excel (2010–2023, включая Microsoft 365).

Почему Excel не удаляет пробелы стандартной заменой

Основная ловушка — это тип пробела. Обычный пробел (код 32) и неразрывный пробел (код 160) для Excel выглядят одинаково, но ведут себя по-разному:

  • 🔹 Обычный пробел (CHAR(32)) — удаляется функцией ЗАМЕНИТЬ() или ПЕЧСИМВ().
  • 🔹 Неразрывный пробел (CHAR(160)) — игнорируется большинством текстовых функций, так как считается "специальным" символом.
  • 🔹 Табуляция (CHAR(9)) — иногда подмешивается при копировании из через буфер обмена.

Чтобы точно определить, какой пробел у вас в ячейке, используйте комбинацию:

=КОДСИМВ(ПРАВСИМВ(A1;1))

Если результат — 160, значит, пробел неразрывный. Если 32 — обычный. В 90% случаев после копирования из вы получите именно 160.

📊 Какой версией Excel вы пользуетесь?
Excel 2010–2016
Excel 2019
Microsoft 365 (онлайн/десктоп)
LibreOffice Calc
Другая

Метод 1: Замена неразрывного пробела через формулу

Самый надёжный способ — использовать функцию ПОДСТАВИТЬ() с явным указанием символа CHAR(160). Формула для ячейки B1 (если исходные данные в A1):

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

Если в данных могут быть и обычные пробелы, комбинируйте функции:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;CHAR(160);"");" "; "")
  • Плюсы: работает во всех версиях Excel, не требует макросов.
  • Минусы: нужно протягивать формулу на все ячейки, затем копировать значения обратно.

1. В пустой столбец введите формулу =ПОДСТАВИТЬ(A1;CHAR(160);"")

2. Протяните формулу на все строки с данными

3. Скопируйте результаты (значения)

4. Вставьте их поверх исходных данных с параметром "Значения" (Shift+F10 → V)

-->

⚠️ Внимание: Если после замены числа отображаются с выравниванием по левому краю (как текст), примените формат "Общий" или "Числовой" к ячейкам. В противном случае Excel не сможет их корректно суммировать или сортировать.

Метод 2: Найти и заменить с использованием специальных символов

Excel позволяет искать неразрывные пробелы через диалог Найти и заменить (Ctrl+H), но для этого нужно знать хитрость:

  1. Выделите диапазон с данными.
  2. Нажмите Ctrl+H, в поле "Найти" введите ^l (латинская буква L в нижнем регистре).
  3. В поле "Заменить на" оставьте пустым.
  4. Нажмите "Заменить всё".

Если ^l не сработало (в некоторых версиях Excel этот код не распознаётся), используйте альтернативный способ:

  1. Скопируйте неразрывный пробел из любой ячейки с проблемными данными (выделите пробел и Ctrl+C).
  2. Вставьте его в поле "Найти" (Ctrl+V).
  3. Запустите замену.
Символ Код для поиска Применение
Неразрывный пробел CHAR(160) или скопированный символ Удаление разделителей из
Обычный пробел " " (пробел) Удаление всех пробелов
Табуляция CHAR(9) Очистка данных после экспорта
⚠️ Внимание: В Excel Online функция поиска по CHAR(160) может не работать. В этом случае используйте метод с формулой или макрос (см. следующий раздел).

Метод 3: Макрос для массовой очистки (VBA)

Если данных много (тысячи строк), ручная замена займёт часы. Автоматизируйте процесс с помощью макроса:

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

    Dim rng As Range

    Dim cell As Range

    Set rng = Selection

    For Each cell In rng

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

    Next cell

    End Sub

  4. Вернитесь в Excel, выделите диапазон с данными и запустите макрос (Alt+F8 → выберите RemoveNonBreakingSpaces → "Выполнить").

Для удаления всех пробелов (включая обычные) замените строку в коде на:

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

Метод 4: Power Query (Excel 2016 и новее)

Power Query — мощный инструмент для очистки данных, доступный в новых версиях Excel. Алгоритм:

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

Преимущество этого метода — возможность сохранить шаги очистки и повторно применять их к новым данным из .

Метод 5: Предварительная настройка экспорта в 1С

Лучше предотвратить проблему, чем бороться с последствиями. В 1С:Предприятие 8.3 можно настроить экспорт без пробелов:

  1. При формировании отчёта или выгрузки данных найдите параметр Формат числа (обычно в настройках колонок).
  2. Установите значение Без разделителей или Число вместо Число с разделителями.
  3. Если экспортируете через Универсальный обмен данными, в шаблоне обмена укажите формат ячеек как Текст.

Для 1С:Бухгалтерия 3.0 и 1С:ERP путь к настройкам может отличаться. Например, в отчётах Оборотно-сальдовая ведомость формат чисел меняется в разделе Дополнительные настройки → Оформление.

Что делать, если в 1С нет опции "Без разделителей"?

В этом случае экспортируйте данные в CSV или TXT, затем импортируйте в Excel через Данные → Из текста. На шаге выбора формата столбца укажите Текстовый — это предотвратит автоматическое добавление пробелов.

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

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

  • 🔴 Числа отображаются как текст: Примените формат "Общий" или умножьте ячейку на 1 (=A1*1).
  • 🔴 Формулы не работают: Проверьте, нет ли скрытых символов (например, CHAR(13) — перевод строки). Используйте =ЧИСТ().
  • 🔴 Данные "съехали" после замены: Включите перенос текста (Главная → Перенос текста) или расширьте столбец.

Если после всех манипуляций числа по-прежнему не суммируются, проверьте их на скрытые апострофы (признак текстового формата). Для этого используйте функцию:

=ЕТЕКСТ(A1)

Если результат — ИСТИНА, преобразуйте данные в числа через ЗНАЧЕН():

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

FAQ: Ответы на популярные вопросы

Можно ли удалить пробелы сразу при вставке в Excel?

Да, используйте специальную вставку:

  1. Скопируйте данные из .
  2. В Excel кликните правой кнопкой по ячейке и выберите Специальная вставка → Текст.
  3. Затем примените любой метод удаления пробелов из этой статьи.

Это предотвратит автоматическое форматирование чисел.

Почему после удаления пробелов числа становятся отрицательными?

Это происходит, если в исходных данных перед числом стоял символ тире с пробелом (например, "- 1000"). После удаления пробела получается "-1000", но Excel интерпретирует его как текст. Решение:

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

Двойной унарный минус (--) принудительно преобразует текст в число.

Как удалить пробелы в Google Таблицах?

В Google Sheets используйте ту же функцию ПОДСТАВИТЬ, но с английским синтаксисом:

=SUBSTITUTE(A1;CHAR(160);"")

Для массовой замены нажмите Ctrl+H и вставьте неразрывный пробел в поле "Найти" (скопировав его из ячейки).

Можно ли вернуть пробелы обратно, если они были нужны?

Да, используйте функцию ФОРМАТ() для добавления разделителей тысяч без изменения значения:

=ФОРМАТ(ПОДСТАВИТЬ(A1;CHAR(160);""); "# ##0")

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

Почему в некоторых ячейках пробелы остаются?

Вероятные причины:

  • В данных используются разные типы пробелов (например, CHAR(160) + CHAR(32)).
  • Ячейки содержат непечатаемые символы (проверьте через =КОДСИМВ(ПРАВСИМВ(A1;1))).
  • На листе включена защита ячеек (снимите её через Рецензирование → Снять защиту листа).

Решение: комбинируйте замену нескольких символов:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;CHAR(160);"");CHAR(32);"");CHAR(9);"")