Числа из 1С не считаются в Excel: как превратить текст в цифры
Содержание
Чтобы преобразовать цифры из 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
Начните с самого простого. Эти способы не требуют формул и подходят для одного столбца.
Кнопка «Преобразовать в число»
- Выделите диапазон со значениями. Первая ячейка выделения должна быть с зелёным треугольником.
- Нажмите на значок с восклицательным знаком рядом с выделением.
- Выберите «Преобразовать в число».
Способ работает, только если внутри нет неразрывных пробелов и разделитель правильный. На выгрузке с разрядами 125 430,50 кнопка обычно ничего не меняет — переходите к замене.
Замена неразрывного пробела
- Выделите столбцы с суммами (не весь лист, чтобы не задеть текстовые поля с названиями).
- Нажмите
Ctrl+H. - В поле «Найти» зажмите
Altи наберите0160на цифровом блоке клавиатуры. Поле будет выглядеть пустым, но символ там есть. - Поле «Заменить на» оставьте пустым.
- Нажмите «Заменить все».
Если на ноутбуке нет цифрового блока, скопируйте «пустое» место между разрядами прямо из ячейки и вставьте его в поле «Найти».
После замены Excel часто сам распознаёт числа. Если они остались слева, нажмите F2 и Enter в одной ячейке для проверки, а для всего столбца используйте «Текст по столбцам» из следующего раздела.
Специальная вставка с умножением
- В любой пустой ячейке введите
1и скопируйте её. - Выделите диапазон с текстовыми числами.
- Правой кнопкой → «Специальная вставка» → в группе «Операция» отметьте «Умножить» → «ОК».
Excel умножит каждое значение на единицу и сохранит результат как число. Ячейку с единицей потом удалите.
«Текст по столбцам»: чистим весь столбец за один проход
Этот инструмент заставляет Excel заново разобрать каждое значение. Он же решает проблему с точкой вместо запятой.
- Выделите один столбец с суммами.
- Откройте
Данные → Текст по столбцам. - Шаг 1: оставьте «с разделителями» → «Далее».
- Шаг 2: снимите все галочки разделителей → «Далее».
- Шаг 3: формат данных столбца — «общий». Нажмите «Подробнее…».
- Укажите разделитель целой и дробной части так, как он стоит в выгрузке (точка или запятая), а разделитель разрядов — пробел.
- «ОК» → «Готово».
«Текст по столбцам» обрабатывает только один столбец за раз и записывает результат поверх исходных данных. Если справа есть заполненные столбцы, а вы случайно оставили галочку разделителя, 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 передаёт числовые ячейки как числа, а не как отформатированный текст.
Отчёт или печатная форма
- Сформируйте отчёт.
- Нажмите кнопку сохранения (значок дискеты) в командной панели отчёта или
Ctrl+S. - В поле типа файла выберите «Лист Excel 2007-… (*.xlsx)».
- Сохраните и откройте файл в Excel.
В печатных формах типовых конфигураций кнопка сохранения тоже есть: она предлагает выбрать формат, в том числе xlsx.
Список документов или справочника
- Откройте список, настройте отбор и нужные колонки.
- Нажмите
Ещё → Вывести список…. - В окне отметьте нужные колонки и выберите вывод в табличный документ.
- В открывшемся документе сохраните его в xlsx, как отчёт выше.
Сравнение способов переноса
| Способ | Числа в Excel | Риски |
|---|---|---|
Ctrl+C → Ctrl+V из отчёта | чаще всего текст | неразрывные пробелы, сдвиг колонок из-за объединённых ячеек |
| Сохранение в xlsx | числа | объединённые ячейки шапки мешают сортировке |
| Сохранение в xls | числа | старый формат, ограничение 65 536 строк |
| Сохранение в mxl | Excel не открывает | нужен 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
Как подключить:
- Нажмите
Alt+F11, откроется редактор VBA. Insert → Module, вставьте код.- Закройте редактор. Выделите столбцы с суммами и запустите макрос через
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 открывается с числами, а у меня — нет?
Сохраняются ли формулы итогов при выгрузке отчёта из 1С в Excel?
Как перенести в Excel большую выгрузку, если файл открывается очень долго?
Данные → Получить данные → Из файла), где тип столбца «Десятичное число» задаётся один раз.