Как преобразовать дату из 1С в Excel: 5 работающих способов с примерами

Экспорт данных из 1С:Предприятие в Microsoft Excel — рутинная задача для бухгалтеров, аналитиков и разработчиков. Но с датами здесь часто возникают проблемы: вместо привычных «01.01.2026» в ячейках появляются странные числа вроде 45678 или ошибки формата. Почему так происходит? Дело в том, что и Excel хранят даты по-разному: первая использует внутренний числовой формат (количество дней с 1900 года), а вторая — собственную систему отсчёта от 1 января 1900 (или 1904 в Mac-версиях).

Если вы никогда не сталкивались с этой проблемой, считайте себя везунчиком. Но рано или поздно она возникнет — особенно при работе с большими отчётами, где даты критичны для анализа. В этой статье разберём 5 проверенных способов преобразования дат из в Excel, от простых формул до автоматизации через Power Query и VBA. Вы узнаете, как избежать типичных ошибок, почему «2 января 1900» в Excel не существует, и что делать, если даты сбиваются на 4 года.

Спойлер: самый надёжный метод — это не ручная правка, а настройка экспорта ещё на этапе выгрузки из . Но об этом позже.

Почему даты из 1С отображаются как числа в Excel

Корень проблемы кроется в внутреннем представлении дат в обеих системах. В 1С:Предприятие дата хранится как количество дней, прошедших с 1 января 0001 года (да, именно с первого года нашей эры!). Например, дата «10.05.2026» в — это число 738804. Excel же использует другую точку отсчёта: 1 января 1900 года (или 1904 года в старых Mac-версиях). Поэтому при прямом экспорте передаёт в Excel «сырое» число, а программа интерпретирует его по своим правилам.

Ещё одна ловушка — ошибка 1900 года. В Excel отсутствует дата «29 февраля 1900», хотя математически она должна существовать (1900 год не был високосным, но Excel ошибочно считает его таковым). Из-за этого все даты до 1 марта 1900 в Excel сдвигаются на 1 день. этой ошибки не содержит, что и приводит к расхождениям.

Кроме того, при экспорте через .xls (старый формат) или .csv данные теряют информацию о формате ячеек. Excel по умолчанию воспринимает их как общий формат, а не как даты. Поэтому вместо «15.06.2026» вы видите «45467».

⚠️ Внимание: Если в выгруженном файле даты отображаются как ######, это значит, что ширина столбца недостаточна для корректного отображения числового значения. Растяните столбец или примените формат Дата.

Чтобы избежать проблем, важно понимать, какой именно формат использует ваша версия и Excel. Например, в 1С:Управление торговлей 11 и 1С:Бухгалтерия 3.0 даты экспортируются одинаково, но в Excel 2016 и Excel 365 могут быть нюансы с обработкой.

📊 Какой формат файлов вы чаще используете для экспорта из 1С?
XLSX (Excel)
CSV (разделитель — запятая)
TXT (разделитель — табуляция)
XML
Другой

Способ 1: Ручная правка через формат ячеек

Самый простой, но не всегда надёжный метод — принудительное изменение формата ячеек в Excel. Он подходит, если даты экспортировались как числа (например, «45678») и не требуют сложных преобразований.

Алгоритм действий:

  1. Выделите столбец с датами в Excel.
  2. Нажмите правой кнопкой мыши и выберите Формат ячеек (или используйте сочетание Ctrl+1).
  3. В открывшемся окне перейдите на вкладку ЧислоДата.
  4. Выберите нужный формат (например, «14.03.2001» или «14 марта 2001 г.»).
  5. Нажмите ОК.

Если после этого даты отображаются некорректно (например, «01.01.1905» вместо «01.01.2026»), значит, число дней в считалось от другой точки отсчёта. В этом случае поможет формула корректировки (см. следующий раздел).

⚠️ Внимание: Этот метод не работает, если даты экспортировались как текст (например, «15/06/2026»). В таком случае сначала преобразуйте текст в дату с помощью функции =ДАТАЗНАЧ().

Преимущество способа — скорость. Недостаток — он не решает проблему с сдвигом на 4 года, который возникает из-за разницы в системах отсчёта и Excel.

☑️ Проверка перед ручной правкой

Выполнено: 0 / 4

Способ 2: Формулы для корректного преобразования

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

Основные формулы:

  • 📅 Для дат после 1900 года: =ДАТА(1900;1;1)+A1-2

    Здесь A1 — ячейка с числом из , а -2 компенсирует ошибку Excel с 1900 годом.

  • 🔄 Для дат до 1900 года (редко, но бывает): =ДАТА(1899;12;31)+A1

    Используется, если передаёт отрицательные числа (даты до 1900 года).

  • Универсальная формула (работает в 90% случаев): =ДАТА(1900;1;1)+A1-2-ЕСЛИ(A1>60;0;1)

    Автоматически корректирует сдвиг для дат до/после 1 марта 1900.

Пример: если в ячейке A1 находится число 45678, формула =ДАТА(1900;1;1)+A1-2 вернёт 01.01.2026.

Для массового преобразования:

  1. Введите формулу в первую ячейку нового столбца (например, B1).
  2. Растяните её на весь диапазон (двойной клик по маркеру автозаполнения).
  3. Скопируйте результаты (Ctrl+C) и вставьте как Значения (Правая кнопка → Специальная вставка → Значения) поверх исходных данных.
⚠️ Внимание: Если после применения формулы даты сдвинуты на 4 года назад (например, «2020» вместо «2026»), значит, использовала точку отсчёта 1904 год. Замените в формуле 1900 на 1904.

Критическая особенность: формулы не работают, если даты в 1С хранятся в текстовом формате (например, «DD.MM.YYYY»). В этом случае сначала преобразуйте текст в число с помощью =ЗНАЧЕН().

Почему формула =ДАТАЗНАЧ() не всегда работает?

Функция =ДАТАЗНАЧ() распознаёт даты только в формате, соответствующем региональным настройкам Windows. Если в 1С дата экспортирована как «2026-05-10» (ISO), а в Windows установлен формат «ДД.ММ.ГГГГ», функция вернёт ошибку. Решение: замените разделители на точку вручную или используйте =ПОДСТАВИТЬ().

Способ 3: Power Query — автоматическое преобразование

Power QueryExcel 2016+ и Excel 365) — самый мощный инструмент для работы с датами из . Он позволяет автоматизировать преобразование и избежать ручной правки при повторных экспортах.

Пошаговая инструкция:

  1. Импортируйте файл в Excel через Данные → Получить данные → Из файла → (выберите формат).
  2. В открывшемся окне Power Query выделите столбец с датами.
  3. Перейдите на вкладку Преобразование и выберите Тип данных → Дата.
  4. Если даты отображаются некорректно, добавьте пользовательский столбец с формулой:
    = Date.From(DateTime.FromOADate([Column1] - 2))

    Здесь [Column1] — название вашего столбца, а -2 компенсирует ошибку Excel.

  5. Удалите исходный столбец и переименуйте новый.
  6. Нажмите Закрыть и загрузить.

Преимущества Power Query:

  • 🔄 Автоматизация: один раз настроили — больше не нужно правки.
  • 📊 Работа с большими данными: обрабатывает миллионы строк без тормозов.
  • 🛠️ Гибкость: можно добавлять дополнительные преобразования (например, разбивать дату на день/месяц/год).

Если даты по-прежнему сбиваются, проверьте настройки региональных параметров в Power Query (вкладка Файл → Параметры → Региональные параметры). Для России должен быть выбран формат «русский (Россия)».

Способ 4: Макросы VBA для массовой обработки

Если вы регулярно работаете с датами из , имеет смысл написать макрос на VBA, который будет преобразовывать их в один клик. Это особенно полезно для бухгалтеров, которые ежемесячно выгружают отчёты.

Пример макроса для корректировки дат:

Sub Convert1CDates()

Dim rng As Range

Dim cell As Range

' Выбираем диапазон с датами (например, столбец A)

Set rng = Selection

For Each cell In rng

If IsNumeric(cell.Value) Then

' Преобразуем число из 1С в дату Excel с учётом сдвига

cell.Value = DateSerial(1900, 1, 1) + cell.Value - 2

cell.NumberFormat = "dd.mm.yyyy"

End If

Next cell

End Sub

Как использовать:

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

Для дат до 1900 года замените в коде DateSerial(1900, 1, 1) на DateSerial(1899, 12, 31).

⚠️ Внимание: Макросы работают только в файлах с расширением .xlsm (с поддержкой макросов). Если вы сохраняете файл как .xlsx, код будет утерян.

Расширенная версия макроса может включать проверку на текстовые даты (например, «10.05.2026») и их автоматическое преобразование в числовой формат.

Способ 5: Настройка экспорта в 1С (оптимальное решение)

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

Как настроить экспорт в 1С:

  1. В отчёте или обработке, откуда экспортируются данные, найдите параметры выгрузки (обычно Файл → Сохранить как... или Ещё → Выгрузить).
  2. Выберите формат Excel (.xlsx) вместо CSV или TXT.
  3. В настройках экспорта (если есть) укажите:
    • 📑 Формат даты: «ДД.ММ.ГГГГ» (а не «ГГГГ-ММ-ДД»).
    • 🔢 Тип данных: «Дата» (а не «Строка» или «Число»).
  • Если используете 1С:EnterpriseData или Универсальный формат обмена, проверьте шаблон выгрузки — в нём должен быть указан тип поля Date.
  • Пример настройки для 1С:Бухгалтерия 3.0:

    1. Откройте отчёт (например, «Оборотно-сальдовая ведомость»).
    2. Нажмите Ещё → Выгрузить.
    3. В окне выгрузки выберите Excel и отметьте галочку Сохранять форматы.
    4. Если в вашей конфигурации нет таких настроек, обратитесь к программисту — он может доработать обработку экспорта, чтобы даты передавались в Excel уже в корректном формате.

      Формат экспорта из 1С Результат в Excel Нужна ли правка?
      Excel (.xlsx) с сохранением форматов Дата отображается корректно ❌ Нет
      CSV или TXT Число (например, 45678) или текст ✅ Да
      Excel (.xls) (старый формат) Возможны ошибки с датами до 1900 года ⚠️ Иногда
      XML или JSON Зависит от схемы данных ✅ Обычно да

      Типичные ошибки и как их избежать

      Даже опытные пользователи допускают ошибки при работе с датами из . Вот самые распространённые и способы их решения:

      • 🗓️ Дата сдвинута на 4 года (например, «2020» вместо «2026»):

        Причина: использовала точку отсчёта 1904 год, а вы применили формулу для 1900 года. Решение: замените в формуле 1900 на 1904 или добавьте +1462 (разница в днях между 1900 и 1904 годами).

      • Вместо даты отображается ######:

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

      • 🔢 Дата стала текстом (например, «45678» не преобразовывается):

        Причина: Excel воспринял число как текст. Решение: используйте функцию =ЗНАЧЕН(), чтобы преобразовать текст в число, а затем примените формулу даты.

      • 📅 Дата отображается как «00.01.1900»:

        Причина: в ячейке было пустое значение или ноль. Решение: добавьте проверку на пустые ячейки в формулу: =ЕСЛИ(A1=0;"";ДАТА(1900;1;1)+A1-2).

    Ещё одна частая проблема — разные региональные настройки в и Excel. Например, если в дата записана как «DD.MM.YYYY», а в Windows установлен американский формат «MM/DD/YYYY», Excel может неправильно интерпретировать день и месяц. Чтобы избежать этого, перед экспортом проверьте:

    1. Формат даты в настройках (Сервис → Параметры → Форматы).
    2. Региональные настройки Windows (Панель управления → Часы и регион → Изменение форматов даты и времени).

    Критично: если вы работаете с датами до 1900 года (например, в исторических отчётах), Excel их не поддерживает. В этом случае экспортируйте данные в CSV и обрабатывайте в специализированных программах (например, Python с библиотекой pandas).

    FAQ: Частые вопросы по преобразованию дат

    Почему после экспорта из 1С в Excel даты становятся числами?

    Excel по умолчанию не распознаёт формат дат из и воспринимает их как числа (количество дней с 1900 года). Чтобы исправить это, примените к столбцу формат Дата или используйте формулы преобразования.

    Как преобразовать дату из 1С, если она экспортирована как текст (например, «10.05.2026»)?

    Используйте функцию =ДАТАЗНАЧ() (для форматов «ДД.ММ.ГГГГ») или комбинацию =ДАТА(ПРАВСИМВ(A1;4); ПСТР(A1;4;2); ЛЕВСИМВ(A1;2)). Если разделитель не точка, замените её с помощью =ПОДСТАВИТЬ().

    Можно ли автоматизировать преобразование дат для ежемесячных отчётов?

    Да. Лучшие способы:

    • Настройте шаблон в Power Query (обновляется одним кликом).
    • Создайте макрос VBA и назначьте его на кнопку.
    • Доработайте обработку экспорта в , чтобы даты передавались в корректном формате.

    Почему после применения формулы даты сдвигаются на 1 день?

    Это известная ошибка Excel с 29 февраля 1900 года. Чтобы исправить, вычтите 1 из результата формулы: =ДАТА(1900;1;1)+A1-2-1 или используйте =ДАТА(1900;1;2)+A1-2.

    Как экспортировать даты из 1С в Google Sheets?

    В Google Sheets используйте ту же логику, что и в Excel, но с учётом того, что Google Таблицы корректно обрабатывают даты до 1900 года. Формула: =DATE(1900;1;1)+A1-2. Для автоматического обновления используйте Apps Script.