Числа из 1С не считаются в Excel: как превратить текст в цифры

· 10 мин

Содержание

Чтобы преобразовать цифры из 1С в Excel в настоящие числа, уберите из ячеек неразрывный пробел (символ с кодом 160): Ctrl+H → в поле «Найти» наберите Alt+0160 на цифровой клавиатуре → «Заменить» оставьте пустым → «Заменить все». После этого суммы выравниваются по правому краю, и формула СУММ начинает их складывать.

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

Почему цифры из 1С попадают в Excel как текст

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

Основные причины:

  • 🔹 Неразрывный пробел между разрядами. 1С выводит 125 430,50, где пробел — не обычный (код 32), а неразрывный (код 160). Excel не считает его разделителем групп.
  • 🔹 Копирование через буфер обмена. При Ctrl+C из отчёта или списка 1С передаёт текст ячеек так, как он виден на экране, со всеми пробелами и форматированием.
  • 🔹 Точка вместо запятой. Если в Windows дробный разделитель — запятая, а значение пришло как 1250.75, Excel видит текст. Иногда хуже: 1.05 превращается в дату «1 мая».
  • 🔹 Хвосты в ячейке. «руб.», «шт», пробелы в конце, знак минус после числа (150-).
  • 🔹 Текст на стороне 1С. В некоторых печатных формах и доработанных отчётах сумма выводится уже готовой строкой. Такая ячейка останется текстом при любой выгрузке.

Как понять, что перед вами текст:

ПризнакЧислоТекст
Выравнивание по умолчаниюпо правому краюпо левому краю
Зелёный треугольник в углунетчасто есть
Строка состояния при выделении«Сумма: …»только «Количество: …»
=ЕЧИСЛО(A2)ИСТИНАЛОЖЬ

Проверить, какой пробел внутри, можно формулой =КОДСИМВ(ПСТР(A2;4;1)), где 4 — позиция пробела в строке. Результат 160 означает неразрывный пробел, 32 — обычный.

Быстрое исправление в интерфейсе Excel

Начните с самого простого. Эти способы не требуют формул и подходят для одного столбца.

Кнопка «Преобразовать в число»

  1. Выделите диапазон со значениями. Первая ячейка выделения должна быть с зелёным треугольником.
  2. Нажмите на значок с восклицательным знаком рядом с выделением.
  3. Выберите «Преобразовать в число».

Способ работает, только если внутри нет неразрывных пробелов и разделитель правильный. На выгрузке с разрядами 125 430,50 кнопка обычно ничего не меняет — переходите к замене.

Замена неразрывного пробела

  1. Выделите столбцы с суммами (не весь лист, чтобы не задеть текстовые поля с названиями).
  2. Нажмите Ctrl+H.
  3. В поле «Найти» зажмите Alt и наберите 0160 на цифровом блоке клавиатуры. Поле будет выглядеть пустым, но символ там есть.
  4. Поле «Заменить на» оставьте пустым.
  5. Нажмите «Заменить все».

Если на ноутбуке нет цифрового блока, скопируйте «пустое» место между разрядами прямо из ячейки и вставьте его в поле «Найти».

После замены Excel часто сам распознаёт числа. Если они остались слева, нажмите F2 и Enter в одной ячейке для проверки, а для всего столбца используйте «Текст по столбцам» из следующего раздела.

Специальная вставка с умножением

  1. В любой пустой ячейке введите 1 и скопируйте её.
  2. Выделите диапазон с текстовыми числами.
  3. Правой кнопкой → «Специальная вставка» → в группе «Операция» отметьте «Умножить» → «ОК».

Excel умножит каждое значение на единицу и сохранит результат как число. Ячейку с единицей потом удалите.

«Текст по столбцам»: чистим весь столбец за один проход

Этот инструмент заставляет Excel заново разобрать каждое значение. Он же решает проблему с точкой вместо запятой.

  1. Выделите один столбец с суммами.
  2. Откройте Данные → Текст по столбцам.
  3. Шаг 1: оставьте «с разделителями» → «Далее».
  4. Шаг 2: снимите все галочки разделителей → «Далее».
  5. Шаг 3: формат данных столбца — «общий». Нажмите «Подробнее…».
  6. Укажите разделитель целой и дробной части так, как он стоит в выгрузке (точка или запятая), а разделитель разрядов — пробел.
  7. «ОК» → «Готово».

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

Тот же инструмент подходит для дат. Если даты из 1С пришли текстом вида 05.03.2025, на шаге 3 выберите формат «дата» и порядок «ДМГ».

Формулы, которые переводят текст в число

Формулы удобны, когда исходные данные трогать нельзя: например, лист обновляется новой выгрузкой каждый день. Результат считается в соседнем столбце.

ФормулаЧто делаетКогда подходит
=--A2двойное отрицание переводит текст в числотекст без пробелов и с «правильным» разделителем
=A2*1 или =A2+0то же через арифметикуто же
=ЗНАЧЕН(A2)явное преобразованието же, читается понятнее
=ЗНАЧЕН(ПОДСТАВИТЬ(A2;СИМВОЛ(160);""))убирает неразрывный пробел и превращает в числотипичная выгрузка 1С с разрядами
=ЧЗНАЧ(A2;",";СИМВОЛ(160))разбирает текст с явно заданными разделителямисмешанные форматы, разделители не совпадают с настройками Windows

Функция ЧЗНАЧ есть в Excel 2013 и новее. Второй аргумент — дробный разделитель в исходном тексте, третий — разделитель групп. Она не зависит от региональных настроек компьютера, поэтому формула даёт одинаковый результат у бухгалтера и у директора с английской Windows.

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

=ЧЗНАЧ(ПОДСТАВИТЬ(A2;" руб.";"");".";СИМВОЛ(160))

Здесь ПОДСТАВИТЬ сначала отрезает хвост « руб.», а затем ЧЗНАЧ читает число.

Если в выгрузке встречаются пустые ячейки или прочерки, оберните формулу в ЕСЛИОШИБКА:

=ЕСЛИОШИБКА(ЗНАЧЕН(ПОДСТАВИТЬ(A2;СИМВОЛ(160);""));0)

Когда пересчёт готов, скопируйте столбец с формулами и вставьте его на место исходного через «Специальная вставка → Значения». Иначе при удалении исходного столбца формулы сломаются.

Как выгрузить из 1С:Предприятия сразу с числами

Самый надёжный путь — не копировать данные через буфер обмена, а сохранять табличный документ файлом. При сохранении в формат Excel платформа 1С 8.3 передаёт числовые ячейки как числа, а не как отформатированный текст.

Отчёт или печатная форма

  1. Сформируйте отчёт.
  2. Нажмите кнопку сохранения (значок дискеты) в командной панели отчёта или Ctrl+S.
  3. В поле типа файла выберите «Лист Excel 2007-… (*.xlsx)».
  4. Сохраните и откройте файл в Excel.

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

Список документов или справочника

  1. Откройте список, настройте отбор и нужные колонки.
  2. Нажмите Ещё → Вывести список….
  3. В окне отметьте нужные колонки и выберите вывод в табличный документ.
  4. В открывшемся документе сохраните его в xlsx, как отчёт выше.

Сравнение способов переноса

СпособЧисла в ExcelРиски
Ctrl+C → Ctrl+V из отчётачаще всего текстнеразрывные пробелы, сдвиг колонок из-за объединённых ячеек
Сохранение в xlsxчислаобъединённые ячейки шапки мешают сортировке
Сохранение в xlsчисластарый формат, ограничение 65 536 строк
Сохранение в mxlExcel не открываетнужен 1С или отдельная программа для просмотра

Что такое MXL и когда он нужен

MXL — собственный формат табличного документа 1С. Excel его не читает. Его используют, чтобы передать отчёт другому пользователю 1С без потери оформления или загрузить данные обратно в базу через обработку загрузки из табличного документа.

Если вам прислали файл .mxl, а 1С под рукой нет, откройте его бесплатной программой фирмы 1С для просмотра и редактирования таблиц («1С:Предприятие — Работа с файлами»). Из неё файл можно пересохранить в xlsx.

Если ячейка остаётся текстом даже в xlsx

Значит, в отчёт или печатную форму сумма выводится строкой. Такое бывает в доработанных формах, где программист заполнил параметр результатом функции Формат(). Исправление на стороне 1С — передавать в ячейку само число, а форматирование задавать свойством ячейки:

// неправильно: в ячейку попадает строка
Область.Параметры.Сумма = Формат(Строка.Сумма, "ЧДЦ=2");

// правильно: в ячейку попадает число, формат задан в макете
Область.Параметры.Сумма = Строка.Сумма;

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

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

ТабДок.Записать("C:\Выгрузка\Отчет.xlsx", ТипФайлаТабличногоДокумента.XLSX);

Макрос VBA для регулярных выгрузок

Если выгрузку из 1С вы чистите каждый день, один раз запишите макрос. Он проходит по выделенным ячейкам, убирает неразрывные и обычные пробелы, хвост « руб.» и переводит результат в число.

Sub Числа1С()
    Dim c As Range, s As String
    For Each c In Selection.Cells
        If Not IsEmpty(c.Value) And Not c.HasFormula Then
            s = CStr(c.Value)
            s = Replace(s, Chr(160), "")
            s = Replace(s, " ", "")
            s = Replace(s, "руб.", "")
            s = Replace(s, ".", Application.International(xlDecimalSeparator))
            If IsNumeric(s) Then
                c.NumberFormat = "#,##0.00"
                c.Value = CDbl(s)
            End If
        End If
    Next c
End Sub

Как подключить:

  1. Нажмите Alt+F11, откроется редактор VBA.
  2. Insert → Module, вставьте код.
  3. Закройте редактор. Выделите столбцы с суммами и запустите макрос через Alt+F8.

Строка с Application.International(xlDecimalSeparator) подставляет тот дробный разделитель, который установлен в Excel. Поэтому макрос одинаково обрабатывает 1250.75 и 1250,75. Свойство NumberFormat в VBA записывается в английской нотации: #,##0.00 на русском Excel отобразится как 125 430,50.

Макрос нельзя отменить через Ctrl+Z. Запускайте его на копии листа или сохраните файл перед запуском.

Чтобы макрос был доступен в любой книге, сохраните его в личную книгу макросов (PERSONAL.XLSB) при записи или перенесите модуль туда. Файл с макросом внутри сохраняют в формате .xlsm, иначе код пропадёт.

Ячейки с кодами, ИНН и номерами счетов выделять перед запуском не нужно — о них в следующем разделе.

Ошибки, которые портят данные при конвертации

Часть проблем появляется не до, а после преобразования. Их легко не заметить в длинной таблице.

Диагностика: выберите симптом

Ещё одна частая ловушка — объединённые ячейки в шапке отчёта. Сортировка и фильтр в Excel на таком диапазоне не работают. Снимите объединение (Главная → Объединить и поместить в центре повторным нажатием) или удалите строки шапки перед обработкой.

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

Можно ли настроить Excel, чтобы он сам понимал точку как дробный разделитель?
Да. Файл → Параметры → Дополнительно, снимите галочку «Использовать системные разделители» и укажите точку. Настройка действует для всех книг на этом компьютере, поэтому после работы с выгрузкой лучше вернуть её обратно.
Почему у коллеги тот же файл xlsx открывается с числами, а у меня — нет?
Скорее всего, у вас разные региональные настройки Windows или Excel. Если коллега получил файл сохранением из 1С, а вы — копированием через буфер, результат тоже будет разным: копирование переносит текст.
Сохраняются ли формулы итогов при выгрузке отчёта из 1С в Excel?
Нет. В файл попадают уже посчитанные значения. Итоги, которые нужно пересчитывать после правок, добавьте в Excel сами формулой СУММ или через «Промежуточный итог».
Как перенести в Excel большую выгрузку, если файл открывается очень долго?
Сохраните отчёт в xlsx, а не в xls, и сформируйте его без оформления и группировок, если это позволяет настройка отчёта. Для сотен тысяч строк удобнее подключить файл через Power Query (Данные → Получить данные → Из файла), где тип столбца «Десятичное число» задаётся один раз.
Можно ли загрузить исправленную таблицу обратно в 1С?
Да, через обработку загрузки данных из табличного документа или встроенную в типовые конфигурации загрузку из файла в отдельных документах и справочниках. Числа в такой таблице тоже должны быть числами, иначе загрузка выдаст ошибку преобразования.