Мастер-класс по вычислению дат в Excel

Иван Корнев·10.04.2026·4 мин

Чтобы рассчитать дату в Excel, достаточно знать, что программа хранит даты как порядковые числа (где 1 — это 1 января 1900 года). Это позволяет выполнять с ними обычные арифметические действия: прибавлять дни простым сложением (=A1+5) или вычитать их. Для более сложных операций, таких как добавление месяцев или расчет рабочих дней, используются специальные функции: EDATE, EOMONTH, DATEDIF и WORKDAY.

Главный секрет: Если после ввода формулы вы видите число вроде 45392 вместо даты 10.04.2026, просто измените формат ячейки на «Дата» на вкладке «Главная».

Базовая арифметика с датами

Самый простой способ изменить дату — использовать математические операторы. Поскольку каждый день равен единице, вы можете легко сдвигать сроки.

  • Прибавить дни: =A2 + 10 (добавит 10 дней к дате в ячейке A2).
  • Вычесть дни: =A2 - 5 (отнимет 5 дней).
  • Разница между датами: =B2 - A2 (покажет количество дней между двумя датами).

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

Работа с месяцами и годами: функции EDATE и EOMONTH

Простое сложение не подходит, если нужно добавить ровно месяц или год, так как количество дней в месяцах различается. Здесь на помощь приходят специализированные функции.

Добавление месяцев (EDATE)

Функция EDATE сдвигает дату на указанное количество месяцев вперед или назад, корректно обрабатывая високосные годы и разные длины месяцев.

Синтаксис: =EDATE(начальная_дата; кол_во_месяцев)

  • Пример: =EDATE("15.03.2026"; 3) вернет 15.06.2026.
  • Пример: =EDATE(A2; -1) отнимет один месяц от даты в ячейке A2.

Конец месяца (EOMONTH)

Полезно для бухгалтерии и отчетности, когда дата должна попадать строго на последний день месяца.

Синтаксис: =EOMONTH(начальная_дата; смещение)

  • =EOMONTH(A2; 0) — последний день текущего месяца.
  • =EOMONTH(A2; 1) — последний день следующего месяца.

Используйте EOMONTH для автоматического формирования сроков сдачи квартальных отчетов. Формула =EOMONTH(СЕГОДНЯ(); 3) покажет дату окончания текущего квартала.

Точный расчет стажа и интервалов: функция DATEDIF

Для вычисления разницы между двумя датами в годах, месяцах и днях (например, для расчета возраста или стажа работы) лучше всего подходит скрытая функция DATEDIF. Она не отображается в списке подсказок Excel, но работает во всех версиях.

Синтаксис: =DATEDIF(начало; конец; "единица_измерения")

Код единицыРезультатПример использования
"y"Полных летРасчет возраста
"m"Полных месяцевДлительность проекта
"d"ДнейКоличество дней просрочки
"ym"Месяцев без учета летОстаток месяцев после полных лет
"md"Дней без учета лет и месяцевОстаток дней

Пример комплексного расчета возраста: Чтобы получить текст вида «25 лет, 3 месяца, 12 дней», используйте сцепку: =DATEDIF(A1; B1; "y") & " лет, " & DATEDIF(A1; B1; "ym") & " мес., " & DATEDIF(A1; B1; "md") & " дн."

Учет выходных и праздников: WORKDAY

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

Синтаксис: =WORKDAY(начальная_дата; кол_во_дней; [праздники])

  • Формула =WORKDAY("01.04.2026"; 10) прибавит 10 рабочих дней, пропуская субботы и воскресенья.
  • Третий аргумент позволяет указать диапазон ячеек с датами государственных праздников, которые также будут исключены из расчета.

Для нестандартной рабочей недели (например, смена 2/2 или рабочая суббота) используйте расширенную версию WORKDAY.INTL.

Преобразование текста в дату и текущее время

Часто данные импортируются из других систем в текстовом формате, который Excel не распознает как дату.

  1. Функция ДАТАЗНАЧ (DATEVALUE): Преобразует текстовую строку, похожую на дату, в серийный номер даты.
    • =ДАТАЗНАЧ("10.04.2026")
  2. Функция ДАТА (DATE): Создает дату из отдельных чисел. Надежный способ избежать ошибок региональных настроек.
    • =ДАТА(2026; 4; 10)
  3. Текущая дата: Функция =СЕГОДНЯ() возвращает текущую дату и обновляется при каждом открытии файла. =ТДАТА() (NOW) добавляет еще и текущее время.

Функции СЕГОДНЯ() и ТДАТА() являются волатильными. Если вам нужно зафиксировать дату создания документа навсегда, введите дату вручную или скопируйте ячейку с формулой и вставьте её как «Значение» (Ctrl+Shift+V).

Частые ошибки при работе с датами

  • Неверный формат ячеек: Самая частая проблема. Если формула вернула число (например, 45392), выделите ячейку и выберите формат «Дата» в меню формата ячеек.
  • Региональные конфликты: Дата 02/03/2026 в американской версии Excel будет прочитана как 2 марта, а в российской — как 3 февраля. Всегда используйте функцию ДАТА(год; месяц; день) для однозначности.
  • Ошибки в DATEDIF: Функция вернет ошибку #ЧИСЛО!, если дата окончания меньше даты начала. Проверяйте порядок аргументов.

FAQ

Как быстро узнать, какой день недели у определенной даты? Используйте функцию =ДЕНЬНЕД(A1; 2). Аргумент 2 настроит нумерацию так, что понедельник будет 1, а воскресенье — 7.

Можно ли суммировать длительности (дни + часы)? Да. Убедитесь, что ячейка с результатом имеет пользовательский формат [ч]:мм или [д] "дн." ч:мм, чтобы часы не сбрасывались после 24 часов.

Как выделить цветом даты, которые уже прошли? Используйте условное форматирование. Правило: «Формула» -> =A1 < СЕГОДНЯ(). Выберите красный цвет заливки для просроченных задач.