РУКОВОДСТВО · ОБНОВЛЕНО 2026-11-02
AI разбирает Excel: как не перепутать дату и серийное число ячейки
Технический контракт обработки дат таблицы до передачи данных нейросети.
Дата в Excel может храниться как серийное число, а формат ячейки показывает пользователю календарную запись. При экспорте только значений эта связь теряется. Сохраняйте систему дат книги, исходное значение и формат отдельно от нормализованного результата. Excel поддерживает системы 1900 и 1904; одинаковое число в них не обозначает одну дату. Не просите модель угадывать систему по внешнему виду столбца. Текстовая дата, числовая дата и формула требуют разных проверок до того, как их смысл попадёт в ответ пользователя.
1. Сохраните данные ячейки и книги
При чтении XLSX сохраните исходное значение, тип ячейки, формат и настройки системы дат. Если библиотека уже возвращает объект даты, проверьте её правила преобразования и значения по умолчанию. Удаление метаданных перед отправкой модели может превратить дату в необъяснимое число. Для формулы отделите выражение от сохранённого результата: последнее вычисление могло быть выполнено раньше. Не заявляйте свежесть результата, если ваше приложение не пересчитывает формулы и не проверяет происхождение сохранённого значения.
2. Определите систему и правила преобразования
Microsoft описывает две системы дат Excel и различие соответствующих серийных значений на 1462 дня. Это не инструкция автоматически прибавлять фиксированное смещение к любому числу в таблице. Сначала установите систему исходной книги и допустимый диапазон. Учитывайте особенности ранних дат и дробной части, если используется время суток. Применяйте документированный преобразователь выбранной библиотеки, а не самодельную формулу, скопированную из примера без проверки её ограничений.
3. Отделите текстовые значения и неопределённость
Ячейка со строкой может выглядеть как дата, но её нужно разобрать по согласованной локали и формату. Короткая запись дня и месяца бывает неоднозначной. Если источник не задаёт порядок, возвращайте уточнение вместо догадки. Дата без времени не задаёт часовой пояс. Не добавляйте время и зону автоматически ради заполнения всех полей схемы. Сохраняйте исходную строку и причину невозможности нормализации, чтобы пользователь мог проверить вывод по самой книге.
4. Сравните с тем, что видит пользователь
Создайте небольшие книги обеих систем с известными датами, обычными числами, текстом и пустыми полями. Проверьте, что дата после чтения и экспорта совпадает с ожидаемой, а числовой идентификатор не превращается в календарный день. Пройдите путь до модели и обратного отображения. Отдельно проверьте формулы и смену формата ячейки. Для приёмки важен смысл исходника, а не только отсутствие исключения парсера. Исходную книгу сохраняйте отдельно от преобразованного представления для дальнейшей сверки.
Частые вопросы
Любое число в столбце даты нужно преобразовать?
Нет. Сначала проверяют тип, формат и контракт столбца. Число может быть идентификатором, длительностью или ошибочно заполненным полем.
Можно ли всегда добавлять 1462 дня?
Нет. Сдвиг относится к сравнению двух систем дат при известных исходных условиях, а не к любому числовому значению таблицы.
Что делать со строкой 03/04/2026?
Нужен известный формат или уточнение. Модель не должна незаметно выбирать день и месяц, если оба варианта допустимы.
Совпадает ли дата с конкретным моментом времени?
Не обязательно. Календарная дата может не содержать времени и часового пояса. Не добавляйте их без предметного правила.