ConvertiloConvertilo

Excel: число в дату и обратно онлайн

Преобразуйте Excel-число даты (например 45245.5) в обычную дату или дату — в Excel-формат. Двусторонний конвертер с учётом 1900-баг и поддержкой форматов 1900/1904.

Дни с 1900-01-00, дробная часть — время дня. Сегодняшнее значение около 46000.
📘
Excel сам превращает числа в даты?

Читайте наш гайд: 5 способов отключить автозамену чисел на даты в Excel и Google Sheets.

Открыть гайд →

Как Excel хранит даты

Внутри Excel и Google Sheets любая дата — это просто число. День 1 = 1 января 1900 года, день 2 = 2 января, и так далее. Сегодняшнее значение около 46000. Дробная часть кодирует время дня: 0.25 = 06:00, 0.5 = 12:00, 0.75 = 18:00. Когда вы видите в ячейке «дата», за ней всегда стоит обычное число — просто формат отображения скрывает его.

Это становится проблемой при экспорте: CSV или JSON получают именно число (45245), а не строку «2024-01-01». При импорте в БД, Python или другую систему его нужно сначала превратить в дату — что и делает этот конвертер.

Excel использует историческую особенность: он считает 1900 год високосным, хотя он им не был (по григорианскому правилу: год делится на 100, но не на 400). Поэтому в Excel есть несуществующий «день 60» — 29 февраля 1900 года. Для всех дат после 1 марта 1900 это не важно, но для дат раньше может быть смещение на 1 день.

Когда нужен этот конвертер

В CSV вместо даты — число

Скачали выгрузку из Excel/Sheets, открыли — а там «45245.5» вместо нормальной даты. Вставьте — получите обычную дату YYYY-MM-DD.

Импорт в Python / Pandas

При чтении xlsx через pandas даты иногда приходят как float. Используйте конвертер для проверки конкретного значения, прежде чем настраивать pd.to_datetime(..., unit='D', origin='1899-12-30').

Перенос таблицы в SQL

Если в источнике даты хранятся как Excel-числа, а в таблице SQL ожидается timestamp — нужна конверсия. Конвертер показывает Unix timestamp для подстановки в запрос.

Сборка отчёта

Готовите формулу для отчёта и нужно знать Excel-номер конкретной даты (например для функции СУММЕСЛИМН по диапазону) — переключитесь на «Дата → Excel-число».

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

Почему сегодняшняя дата в Excel — это число около 46000?

Excel считает дни с 1 января 1900 года. От 1900 до сегодняшнего дня прошло около 46 тысяч дней — отсюда и порядок числа. Завтра будет 46001, послезавтра 46002, и т. д. Дробная часть = доля прошедшего дня в долях единицы.

Что значит дробная часть после точки?

Это время дня в долях суток. 0.25 = 6:00, 0.5 = 12:00, 0.75 = 18:00. Например, 45245.5 — это 1 января 2024 года, 12:00.

Какая формула преобразования Excel-числа в Unix timestamp?

unix_seconds = (excel_number − 25569) × 86400. Где 25569 — это Excel-номер даты 1970-01-01 (начала Unix-эпохи). Обратно: excel_number = unix_seconds / 86400 + 25569.

Что такое баг 1900 года и нужно ли его учитывать?

Excel ошибочно считает 1900 год високосным. Из-за этого день 60 в Excel = 29 февраля 1900 года, которого не существовало. Для всех дат после 1 марта 1900 года это не имеет значения — формула работает корректно. Это важно только для исторических данных XIX века.

А как у Excel для Mac (формат 1904)?

Старые Excel для Mac использовали 1904-01-01 как начало (формат '1904 date system'). Чтобы конвертировать значение в этом формате — прибавьте 1462 к числу, и получите эквивалент в обычном (1900-based) формате. Современные Mac Excel по умолчанию используют 1900-based, но опция переключения сохранилась.

Как избежать автозамены чисел на даты при вводе?

В Excel: формат ячейки «Текст», или ставьте апостроф перед числом ('001234). В Google Sheets: Format → Number → Plain text перед вставкой. Подробнее — в нашем блоге о том, как Excel меняет числа на даты.

А Java timestamp — это другое?

Да, у Java и Unix эпоха одна — 1970-01-01 UTC, но Java по умолчанию работает в миллисекундах (Date.now() = unix_sec × 1000). Excel — это совсем другая эпоха (1900) и другая единица (дни). Если нужно работать с Java/Unix временем — используйте наш Unix Timestamp Converter.