Как перевести дату в число в Excel: от простых методов до автоматизации

Почему Excel воспринимает даты как числа — и как это использовать

Microsoft Excel хранит даты в виде последовательных чисел, где 1 января 1900 года равно единице, а каждое последующее число соответствует новому дню. Например, 45370 — это 10 марта 2026 года. Такой подход позволяет выполнять вычисления с датами: прибавлять дни, вычитать интервалы или сравнивать периоды. Однако пользователи часто сталкиваются с обратной задачей: преобразовать отображаемую дату в её числовой эквивалент для аналитики, интеграции с другими системами или создания формул.

В этой статье разберём 5 рабочих методов конвертации дат в числа — от базового изменения формата ячейки до написания VBA-макросов. Особое внимание уделим типичным ошибкам (например, почему после преобразования получается ######) и нюансам работы с разными региональными настройками Excel. Материал актуален для всех версий программы, включая Excel 2026 и Office 365.

Если вам нужно не просто получить число, а извлечь из даты год, месяц или день — в конце статьи есть FAQ с готовыми формулами для таких задач.

Метод 1: Изменение формата ячейки (самый быстрый способ)

Это базовый приём, который работает в 90% случаев. Суть в том, что Excel просто меняет способ отображения данных, не изменяя их внутреннее значение. Например, дата 15.05.2026 в формате Общий или Числовой станет числом 45416.

Как это сделать:

  • 📌 Выделите ячейку (или диапазон) с датой.
  • 🖱️ Нажмите правой кнопкой мыши и выберите Формат ячеек... (или используйте горячие клавиши Ctrl+1).
  • 📊 В открывшемся окне перейдите на вкладку Число → выберите категорию Общий или Числовой.
  • ✅ Нажмите ОК — дата преобразуется в число.

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

Метод 2: Функция ДАТАЗНАЧ (DATEVALUE) для текстового формата

Если ваша дата хранится как текст (например, после импорта из CSV или базы данных), функция ДАТАЗНАЧ (DATEVALUE в английской версии) преобразует её в серийный номер Excel. Это полезно, когда даты отображаются как строки и не реагируют на изменение формата ячейки.

Синтаксис:

=ДАТАЗНАЧ("дата_как_текст")

Примеры использования:

Текстовая дата (исходная) Формула Результат (число)
"15.05.2026" =ДАТАЗНАЧ("15.05.2026") 45416
"May 15, 2026" (английский формат) =ДАТАЗНАЧ("15-May-2026") 45416
"2026/05/15" (формат ГГГГ/ММ/ДД) =ДАТАЗНАЧ("15/05/2026") #ЗНАЧ! (ошибка)

⚠️ Внимание: Функция ДАТАЗНАЧ зависит от региональных настроек Excel. Если ваша система использует формат даты ММ/ДД/ГГГГ, а в тексте указан ДД.ММ.ГГГГ, возникнет ошибка #ЗНАЧ!. Решение — или изменить настройки Windows, или использовать функцию ПОДСТАВИТЬ для преобразования формата:

=ДАТАЗНАЧ(ПОДСТАВИТЬ("15.05.2026"; "."; "/"))
📊 Какой формат даты вы чаще всего используете в Excel?
ДД.ММ.ГГГГ
ММ/ДД/ГГГГ
ГГГГ-ММ-ДД
Другой

Метод 3: Формулы для извлечения года, месяца или дня

Иногда требуется не вся дата в виде числа, а только её компоненты — например, год для группировки данных или месяц для построения графиков. Для этого в Excel есть специализированные функции:

  • 📅 ГОД(дата) — возвращает год (например, 2026).
  • 📆 МЕСЯЦ(дата) — возвращает номер месяца (от 1 до 12).
  • 📇 ДЕНЬ(дата) — возвращает день месяца (от 1 до 31).
  • 🕒 ДАТА(год; месяц; день) — создаёт дату из компонентов (обратная операция).

Примеры:

=ГОД(A1)       // Вернёт 2026, если в A1 дата 15.05.2026

=МЕСЯЦ(A1)*30 // Приблизительное количество дней в месяце

=ДЕНЬ(A1)&"-й день" // Вернёт "15-й день"

Для извлечения номера недели используйте функцию НОМНЕДЕЛИ:

=НОМНЕДЕЛИ(A1; 2)  // 2 — неделя начинается с понедельника

Используете ли вы абсолютные ссылки ($A$1) для фиксированных ячеек?|Проверяете ли результат на ошибки (#ЗНАЧ!, #ЧИСЛО!)?|Учитываете ли региональные настройки при работе с датами?|Тестируете ли формулы на крайних значениях (например, 31.12.2026)?

-->

Метод 4: Power Query для пакетной обработки

Если у вас большая таблица с тысячами дат, ручное форматирование или написание формул для каждой ячейки займёт слишком много времени. В этом случае поможет инструмент Power Query (доступен в Excel 2016 и новее). Он позволяет:

  • 🔄 Преобразовать столбец с датами в числа за несколько кликов.
  • 📥 Импортировать данные из внешних источников (CSV, SQL, JSON) с автоматической конвертацией.
  • 🔄 Обновлять результаты при изменении исходных данных.

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

  1. Выделите таблицу с датами → перейдите на вкладку ДанныеИз таблицы/диапазона.
  2. В открывшемся редакторе Power Query выделите столбец с датами.
  3. На вкладке Преобразование выберите Тип данных: Дата (если Excel воспринимает данные как текст).
  4. Затем выберите Тип данных: Целое число.
  5. Нажмите Закрыть и загрузить — данные преобразуются в новый лист.

⚠️ Внимание: Power Query создаёт связанную таблицу, которая обновляется при изменении исходных данных. Если вам нужно статичное значение, скопируйте результаты и вставьте как Значения (Ctrl+Shift+V).

Что делать, если Power Query не распознаёт даты?

Если даты импортированы как текст в нестандартном формате (например, "15 мая 2026 г."), используйте Столбец по примеру в Power Query:

1. Выделите столбец → Добавить столбецСтолбец по примеру.

2. В первой ячейке нового столбца введите правильную дату (например, 15.05.2026).

3. Power Query автоматически определит шаблон и преобразует остальные строки.

4. Затем измените тип данных на Целое число.

Метод 5: VBA-макрос для автоматизации

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

Пример макроса, который преобразует выделенные ячейки с датами в их числовые эквиваленты:

Sub ConvertDatesToNumbers()

Dim cell As Range

For Each cell In Selection

If IsDate(cell.Value) Then

cell.NumberFormat = "General"

cell.Value = cell.Value

End If

Next cell

End Sub

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

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

⚠️ Внимание: Макрос заменяет исходные данные. Если нужно сохранить оригинальные даты, сначала скопируйте их в другой столбец. Также убедитесь, что в настройках Excel разрешено выполнение макросов (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Включить все макросы).

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

При преобразовании дат в числа пользователи часто сталкиваются с следующими проблемами:

Ошибка Причина Решение
###### в ячейке Столбец слишком узкий для отображения числа. Растяните столбец или примените формат Общий.
#ЗНАЧ! в функции ДАТАЗНАЧ Некорректный формат даты (например, ГГГГ-ММ-ДД при настройках ДД.ММ.ГГГГ). Используйте ПОДСТАВИТЬ или измените региональные настройки.
Число не совпадает с ожидаемой датой Excel считает даты с 1900 года, а не с 1904 (настройка в Файл → Параметры → Дополнительно). Проверьте параметр Система дат 1904 и снимите галочку, если она установлена.
Дата не преобразуется в число Ячейка содержит текст, а не дату (например, после импорта). Используйте ДАТАЗНАЧ или ТЕКСТ.ПОСЛЕ для очистки данных.

Ещё одна распространённая проблема — разница в 4 года при работе с датами до 1900 года. Дело в том, что Excel не поддерживает даты раньше 1 января 1900 года (в системе 1900) или 1 января 1904 года (в системе 1904). Если вам нужно работать с историческими датами, используйте специализированные надстройки или конвертируйте их в текстовый формат.

FAQ: Частые вопросы по работе с датами в Excel

Как вернуть дату обратно из числа?

Примените к ячейке формат Дата (Ctrl+1 → Категория: Дата). Или используйте формулу =ДАТА(ГОД_ИЗ_ЧИСЛА; МЕСЯЦ_ИЗ_ЧИСЛА; ДЕНЬ_ИЗ_ЧИСЛА), где компоненты извлекаются функциями ГОД, МЕСЯЦ, ДЕНЬ.

Почему после преобразования дата сдвинулась на 4 года?

В настройках Excel включён параметр Система дат 1904 (Файл → Параметры → Дополнительно). Снимите галочку и перезагрузите файл — даты вернутся к правильным значениям.

Как преобразовать дату в формате UNIX timestamp?

Timestamp в Excel преобразуется по формуле:

=ДАТА(1970;1;1) + (A1/86400)

Где A1 — ячейка с timestamp (количество секунд с 1 января 1970 года). Для обратного преобразования:

=(A1 - ДАТАЗНАЧ("1970-01-01")) * 86400
Можно ли конвертировать даты в числа без потери точности?

Да, если исходные данные корректны. Однако учитывайте, что Excel хранит даты с точностью до дня, а время (часы, минуты) — как дробную часть числа. Например, 45416,5 — это полдень 15 мая 2026 года. Чтобы сохранить время, используйте формат Общий или Числовой с достаточным количеством десятичных знаков.

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

Используйте динамические массивы (в Excel 365 и 2021) или таблицы Excel:

  1. Преобразуйте диапазон в таблицу (Ctrl+T).
  2. Добавьте столбец с формулой (например, =ДАТАЗНАЧ([@Дата]), где Дата — название столбца).
  3. Теперь при изменении исходных дат числа будут обновляться автоматически.