К статье
Практический материал

Отчеты и Аналитика · 10 мин

Как в Excel убрать пробелы в числах из 1С

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

Отчёты, выгруженные из 1С в Excel, часто содержат числа, которые программа не считает числами: сумма не работает, сортировка идёт «по алфавиту», а ВПР не находит совпадений. Причина почти всегда одна — внутри числа стоит неразрывный пробел (символ с кодом 160), который 1С использует как разделитель разрядов: «1 234 567,89».

Обычная команда «Найти и заменить» с обычным пробелом здесь не срабатывает, потому что неразрывный пробел — это другой символ. Ниже разобраны рабочие способы очистки: от быстрой замены до формул и настройки самой выгрузки из 1С, а также как проверить, что данные действительно стали числами.

Почему Excel не воспринимает числа из 1С

При выгрузке отчёта 1С форматирует числа с группировкой разрядов, и в качестве разделителя вставляет неразрывный пробел (Unicode 00A0, в Excel — СИМВОЛ(160)). Визуально он неотличим от обычного пробела, но для Excel это текстовый символ. Как только в ячейке появляется хоть один такой символ, всё содержимое трактуется как текст.

Отличить проблему просто: числа-текст выравниваются по левому краю ячейки, рядом может появляться зелёный треугольник в углу, а функция СУММ по диапазону возвращает ноль или заниженный результат. Дополнительная проверка — формула =ЕТЕКСТ(A1): если она возвращает ИСТИНА для ячейки, которая выглядит как число, значит, внутри есть посторонние символы.

Зелёный треугольник в углу ячейкиExcel помечает «число, сохранённое как текст»

Наведите курсор на значок — появится подсказка о формате

СУММ даёт 0 или заниженный итогТекстовые значения игнорируются при суммировании

Сравните сумму по диапазону с итогом в отчёте 1С

Выравнивание по левому краюПо умолчанию текст выравнивается влево, числа — вправо

Снимите ручное выравнивание и посмотрите, куда «прилипло» значение

=ДЛСТР(A1) больше, чем видимых цифрВ ячейке есть скрытые символы

Посчитайте цифры и запятую вручную, сравните с результатом ДЛСТР

Способ 1. Найти и заменить неразрывный пробел

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

В поле «Найти» нужно поместить именно неразрывный пробел. Есть два способа: скопировать его прямо из «битой» ячейки (выделите символ между цифрами в строке формул и скопируйте) либо ввести с клавиатуры: зажмите Alt и наберите 0160 на цифровом блоке. Поле «Заменить на» оставьте пустым и нажмите «Заменить все».

После замены Excel обычно сам преобразует очищенные значения в числа. Если этого не произошло (ячейки по-прежнему текстовые), дополнительно пройдите по столбцу инструментом «Данные → Текст по столбцам → Готово» — это принудительно пересчитает формат.

Порядок действий при замене
  1. 1
    Выделите диапазон с числами из 1С
  2. 2
    Скопируйте неразрывный пробел из строки формул любой проблемной ячейки
  3. 3
    Нажмите Ctrl+H и вставьте символ в поле «Найти»
  4. 4
    Поле «Заменить на» оставьте пустым, нажмите «Заменить все»
  5. 5
    Проверьте: =СУММ(диапазон) должна дать корректный итог
  6. 6
    Если значения остались текстом — прогоните столбец через «Текст по столбцам» с кнопкой «Готово»

Способ 2. Формулы ПОДСТАВИТЬ и СЖПРОБЕЛЫ

Если данные регулярно обновляются (например, вы каждую неделю выгружаете один и тот же отчёт), удобнее построить формулу в соседнем столбце — тогда очистка будет происходить автоматически при вставке новых данных.

Базовая формула выглядит так: =--ПОДСТАВИТЬ(A1;СИМВОЛ(160);""). Функция ПОДСТАВИТЬ убирает все неразрывные пробелы, а двойное отрицание (--) превращает очищенный текст в число. Если в данных встречаются ещё и обычные пробелы, добавьте вложенную подстановку: =--ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;СИМВОЛ(160);"");" ";"").

Функция СЖПРОБЕЛЫ здесь не помогает: она удаляет только обычные пробелы (код 32) и не трогает неразрывные. Это частая причина того, что «формула не сработала». После того как формула отработала, скопируйте столбец с результатами и вставьте его как значения поверх исходных данных (Ctrl+Shift+V → «Значения»), чтобы избавиться от вспомогательных вычислений.

Способ 3. Макрос для регулярной обработки

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

vb
Sub CleanNBSP()
    Dim c As Range
    For Each c In ActiveSheet.UsedRange.Cells
        If Not IsEmpty(c.Value) Then
            c.Value = Replace(c.Value, Chr(160), "")
        End If
    Next c
End Sub

Макрос вставляется в стандартный модуль редактора VBA (Alt+F11 → Insert → Module) и запускается через Alt+F8. Перед первым запуском сохраните копию файла: макрос изменяет значения напрямую, и отмена через Ctrl+Z после выполнения макроса недоступна.

Способ 4. Настроить выгрузку в самой 1С

Часть проблемы можно устранить на стороне источника. Во многих конфигурациях 1С при сохранении табличного документа в формат Excel числа выгружаются «как есть» — с форматированием разрядов. Если отчёт строится через «Ещё → Вывести список» или сохраняется как табличный документ, попробуйте вариант сохранения в формате «Лист Excel» с типом данных «Значение», а не «Текст» — тогда числа попадут в файл уже числовыми.

Другой путь — выгрузка через обработку «Универсальный обмен данными в формате XML» не подходит, а вот выгрузка в CSV часто решает задачу: в CSV числа обычно сохраняются без группировки разрядов, и Excel открывает их корректно. Если отчёт строится собственной разработкой, попросите разработчика убрать форматную строку группировки (Формат с параметром ЧГ=0) при выводе в файл.

Сравнение способов очистки

Найти и заменить (Ctrl+H)

Лучший вариант для разовой обработки. Быстро, но требует повторения при каждой новой выгрузке

Формула ПОДСТАВИТЬ

Подходит для регулярных выгрузок в один и тот же шаблон. Требует вспомогательного столбца и вставки значений

Макрос VBA

Эффективен при пакетной обработке множества файлов. Требует разрешения на выполнение макросов и аккуратности — отмены нет

Настройка выгрузки из 1С

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

Как проверить, что очистка прошла успешно

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

Сначала сравните сумму по очищенному столбцу с итогом в исходном отчёте 1С — они должны совпасть до копейки. Затем проверьте несколько ячеек формулой =ЕЧИСЛО(A1). Наконец, выполните поиск (Ctrl+F) по символу неразрывного пробела по всему листу: найденных значений быть не должно.

Контрольные точки

Контрольные точки после очистки

=СУММ по столбцу
Норма

Совпадает с итогом отчёта в 1С

Тревожный признак

Сумма меньше — часть значений осталась текстом

=ЕЧИСЛО(A1) по выборке ячеек
Норма

Возвращает ИСТИНА

Тревожный признак

ЛОЖЬ — в ячейке остались посторонние символы

Поиск символа 160 по листу
Норма

Совпадений не найдено

Тревожный признак

Excel находит значения — замена выполнена не везде

Сортировка столбца по возрастанию
Норма

Числа упорядочиваются по величине

Тревожный признак

Порядок «1, 10, 2» — значения сортируются как текст

Частые ошибки при очистке чисел из 1С

Самая распространённая ошибка — попытка заменить обычный пробел вместо неразрывного. Excel сообщает «заменено: 0», и пользователь решает, что пробелов нет, хотя они есть. Всегда копируйте символ из самой ячейки или вводите Alt+0160.

Вторая ошибка — замена по всему листу без выделения. Неразрывные пробелы встречаются и в текстовых полях (наименования контрагентов, адреса), где они могут быть уместны. Третья типичная ситуация: после очистки числа «съезжают» из-за разделителя дробной части — об этом сказано выше, проверяйте региональные настройки до обработки, а не после.

Типичные ошибки
01
Замена обычного пробела вместо неразрывного — Excel пишет «0 замен», данные остаются текстом
02
Замена по всему листу — повреждаются текстовые поля, где неразрывный пробел стоит осознанно
03
Использование СЖПРОБЕЛЫ — функция не удаляет символ 160, результат нулевой
04
Забытая вставка значений поверх формул — при удалении исходного столбца данные превращаются в ошибки #ССЫЛКА!
05
Обработка без копии файла — при ошибочной замене исходные данные восстановить не из чего

Частые вопросы

Почему «Найти и заменить» не находит пробел, хотя он виден?

Потому что это неразрывный пробел (код 160), а не обычный (код 32). Скопируйте символ прямо из строки формул проблемной ячейки и вставьте в поле «Найти», либо введите его комбинацией Alt+0160 на цифровой клавиатуре.

Можно ли убрать пробелы без формул и макросов, сразу при выгрузке?

Да, частично. Попробуйте сохранить отчёт из 1С в формате CSV или проверьте варианты сохранения табличного документа — в некоторых конфигурациях есть выбор типа данных при выгрузке. Если отчёт дорабатывался программистом, попросите убрать группировку разрядов в форматной строке вывода.

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

Это происходит, когда значение вроде «1 02» или «3 04» после очистки совпадает с форматом даты. Перед обработкой задайте столбцу числовой формат явно (Ctrl+1 → Числовой), а при импорте из CSV используйте мастер импорта текста и укажите формат столбца вручную.

СЖПРОБЕЛЫ не помогает. Это ошибка в формуле?

Нет, функция работает как задумано: она удаляет только обычные пробелы с кодом 32. Для неразрывных пробелов нужна ПОДСТАВИТЬ с СИМВОЛ(160), а СЖПРОБЕЛЫ можно добавить вторым уровнем для подстраховки.

Как обработать сразу несколько листов в книге?

Выделите нужные листы через Ctrl по ярлыкам и выполните замену — она применится ко всем выделенным листам. Либо измените макрос, добавив цикл по Worksheets, чтобы он обошёл всю книгу автоматически.

Числа очистились, но ВПР всё равно не находит совпадения. В чём причина?

Проверьте обе стороны сравнения: искомое значение и таблицу поиска. Если одно — число, а другое — текст (например, код контрагента с ведущими нулями), совпадения не будет. Приведите оба столбца к одному типу: либо оба в число, либо оба в текст через функцию ТЕКСТ с нужным форматом.

Итог

Что важно запомнить

Пробелы в числах из 1С — это неразрывные пробелы (код 160), которые делают число текстом. Убирайте их заменой с символом из самой ячейки или формулой =--ПОДСТАВИТЬ(A1;СИМВОЛ(160);""), работайте с копией файла и всегда сверяйте итоговую сумму с отчётом в 1С после очистки.