Отчеты и Аналитика · 10 мин
Как в Excel убрать пробелы в числах из 1С
Почему числа из 1С содержат неразрывные пробелы и как их убрать в Excel: замена, формулы, макрос, настройка выгрузки. Пошаговые инструкции и проверка результата.
Отчёты, выгруженные из 1С в Excel, часто содержат числа, которые программа не считает числами: сумма не работает, сортировка идёт «по алфавиту», а ВПР не находит совпадений. Причина почти всегда одна — внутри числа стоит неразрывный пробел (символ с кодом 160), который 1С использует как разделитель разрядов: «1 234 567,89».
Обычная команда «Найти и заменить» с обычным пробелом здесь не срабатывает, потому что неразрывный пробел — это другой символ. Ниже разобраны рабочие способы очистки: от быстрой замены до формул и настройки самой выгрузки из 1С, а также как проверить, что данные действительно стали числами.
Почему Excel не воспринимает числа из 1С
При выгрузке отчёта 1С форматирует числа с группировкой разрядов, и в качестве разделителя вставляет неразрывный пробел (Unicode 00A0, в Excel — СИМВОЛ(160)). Визуально он неотличим от обычного пробела, но для Excel это текстовый символ. Как только в ячейке появляется хоть один такой символ, всё содержимое трактуется как текст.
Отличить проблему просто: числа-текст выравниваются по левому краю ячейки, рядом может появляться зелёный треугольник в углу, а функция СУММ по диапазону возвращает ноль или заниженный результат. Дополнительная проверка — формула =ЕТЕКСТ(A1): если она возвращает ИСТИНА для ячейки, которая выглядит как число, значит, внутри есть посторонние символы.
Наведите курсор на значок — появится подсказка о формате
Сравните сумму по диапазону с итогом в отчёте 1С
Снимите ручное выравнивание и посмотрите, куда «прилипло» значение
Посчитайте цифры и запятую вручную, сравните с результатом ДЛСТР
Способ 1. Найти и заменить неразрывный пробел
Самый быстрый вариант для разовой обработки — стандартная замена, но с правильным символом. Выделите диапазон с числами (это важно: замена по всему листу может зацепить текстовые колонки, где неразрывные пробелы нужны) и нажмите Ctrl+H.
В поле «Найти» нужно поместить именно неразрывный пробел. Есть два способа: скопировать его прямо из «битой» ячейки (выделите символ между цифрами в строке формул и скопируйте) либо ввести с клавиатуры: зажмите Alt и наберите 0160 на цифровом блоке. Поле «Заменить на» оставьте пустым и нажмите «Заменить все».
После замены Excel обычно сам преобразует очищенные значения в числа. Если этого не произошло (ячейки по-прежнему текстовые), дополнительно пройдите по столбцу инструментом «Данные → Текст по столбцам → Готово» — это принудительно пересчитает формат.
- 1Выделите диапазон с числами из 1С
- 2Скопируйте неразрывный пробел из строки формул любой проблемной ячейки
- 3Нажмите Ctrl+H и вставьте символ в поле «Найти»
- 4Поле «Заменить на» оставьте пустым, нажмите «Заменить все»
- 5Проверьте: =СУММ(диапазон) должна дать корректный итог
- 6Если значения остались текстом — прогоните столбец через «Текст по столбцам» с кнопкой «Готово»
Способ 2. Формулы ПОДСТАВИТЬ и СЖПРОБЕЛЫ
Если данные регулярно обновляются (например, вы каждую неделю выгружаете один и тот же отчёт), удобнее построить формулу в соседнем столбце — тогда очистка будет происходить автоматически при вставке новых данных.
Базовая формула выглядит так: =--ПОДСТАВИТЬ(A1;СИМВОЛ(160);""). Функция ПОДСТАВИТЬ убирает все неразрывные пробелы, а двойное отрицание (--) превращает очищенный текст в число. Если в данных встречаются ещё и обычные пробелы, добавьте вложенную подстановку: =--ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;СИМВОЛ(160);"");" ";"").
Функция СЖПРОБЕЛЫ здесь не помогает: она удаляет только обычные пробелы (код 32) и не трогает неразрывные. Это частая причина того, что «формула не сработала». После того как формула отработала, скопируйте столбец с результатами и вставьте его как значения поверх исходных данных (Ctrl+Shift+V → «Значения»), чтобы избавиться от вспомогательных вычислений.
Способ 3. Макрос для регулярной обработки
Когда файлов много и структура у них одинаковая, разумно автоматизировать очистку простым макросом. Он проходит по используемому диапазону листа, убирает неразрывные пробелы и преобразует значения в числа, где это возможно.
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) при выводе в файл.
Сравнение способов очистки
Лучший вариант для разовой обработки. Быстро, но требует повторения при каждой новой выгрузке
Подходит для регулярных выгрузок в один и тот же шаблон. Требует вспомогательного столбца и вставки значений
Эффективен при пакетной обработке множества файлов. Требует разрешения на выполнение макросов и аккуратности — отмены нет
Устраняет причину, а не следствие. Не всегда доступна без доработки конфигурации или прав администратора
Как проверить, что очистка прошла успешно
Не ограничивайтесь визуальной проверкой — неразрывный пробел невидим, и его остатки легко пропустить. Надёжный контроль включает три шага: сверка итогов, функциональная проверка и поиск остаточных символов.
Сначала сравните сумму по очищенному столбцу с итогом в исходном отчёте 1С — они должны совпасть до копейки. Затем проверьте несколько ячеек формулой =ЕЧИСЛО(A1). Наконец, выполните поиск (Ctrl+F) по символу неразрывного пробела по всему листу: найденных значений быть не должно.
Контрольные точки после очистки
Совпадает с итогом отчёта в 1С
Сумма меньше — часть значений осталась текстом
Возвращает ИСТИНА
ЛОЖЬ — в ячейке остались посторонние символы
Совпадений не найдено
Excel находит значения — замена выполнена не везде
Числа упорядочиваются по величине
Порядок «1, 10, 2» — значения сортируются как текст
Частые ошибки при очистке чисел из 1С
Самая распространённая ошибка — попытка заменить обычный пробел вместо неразрывного. Excel сообщает «заменено: 0», и пользователь решает, что пробелов нет, хотя они есть. Всегда копируйте символ из самой ячейки или вводите Alt+0160.
Вторая ошибка — замена по всему листу без выделения. Неразрывные пробелы встречаются и в текстовых полях (наименования контрагентов, адреса), где они могут быть уместны. Третья типичная ситуация: после очистки числа «съезжают» из-за разделителя дробной части — об этом сказано выше, проверяйте региональные настройки до обработки, а не после.
Частые вопросы
Почему «Найти и заменить» не находит пробел, хотя он виден?
Потому что это неразрывный пробел (код 160), а не обычный (код 32). Скопируйте символ прямо из строки формул проблемной ячейки и вставьте в поле «Найти», либо введите его комбинацией Alt+0160 на цифровой клавиатуре.
Можно ли убрать пробелы без формул и макросов, сразу при выгрузке?
Да, частично. Попробуйте сохранить отчёт из 1С в формате CSV или проверьте варианты сохранения табличного документа — в некоторых конфигурациях есть выбор типа данных при выгрузке. Если отчёт дорабатывался программистом, попросите убрать группировку разрядов в форматной строке вывода.
После удаления пробелов числа стали датами. Что делать?
Это происходит, когда значение вроде «1 02» или «3 04» после очистки совпадает с форматом даты. Перед обработкой задайте столбцу числовой формат явно (Ctrl+1 → Числовой), а при импорте из CSV используйте мастер импорта текста и укажите формат столбца вручную.
СЖПРОБЕЛЫ не помогает. Это ошибка в формуле?
Нет, функция работает как задумано: она удаляет только обычные пробелы с кодом 32. Для неразрывных пробелов нужна ПОДСТАВИТЬ с СИМВОЛ(160), а СЖПРОБЕЛЫ можно добавить вторым уровнем для подстраховки.
Как обработать сразу несколько листов в книге?
Выделите нужные листы через Ctrl по ярлыкам и выполните замену — она применится ко всем выделенным листам. Либо измените макрос, добавив цикл по Worksheets, чтобы он обошёл всю книгу автоматически.
Числа очистились, но ВПР всё равно не находит совпадения. В чём причина?
Проверьте обе стороны сравнения: искомое значение и таблицу поиска. Если одно — число, а другое — текст (например, код контрагента с ведущими нулями), совпадения не будет. Приведите оба столбца к одному типу: либо оба в число, либо оба в текст через функцию ТЕКСТ с нужным форматом.
Что важно запомнить
Пробелы в числах из 1С — это неразрывные пробелы (код 160), которые делают число текстом. Убирайте их заменой с символом из самой ячейки или формулой =--ПОДСТАВИТЬ(A1;СИМВОЛ(160);""), работайте с копией файла и всегда сверяйте итоговую сумму с отчётом в 1С после очистки.