Excel: число в дату и обратно онлайн
Преобразуйте Excel-число даты (например 45245.5) в обычную дату или дату — в Excel-формат. Двусторонний конвертер с учётом 1900-баг и поддержкой форматов 1900/1904.
Читайте наш гайд: 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.