Как в Excel высчитать дату: формулы, функции и практические примеры

Работа с датами в Microsoft Excel — одна из самых востребованных задач, с которой сталкиваются бухгалтеры, менеджеры проектов, логисты и даже обычные пользователи. Хотите узнать, сколько дней осталось до дедлайна? Нужно рассчитать срок действия договора или определить рабочие дни между двумя датами? Всё это можно сделать с помощью встроенных функций программы — и сегодня мы разберём 7 проверенных способов, как в Excel высчитать дату с учётом разных сценариев.

Многие ошибочно думают, что для работы с датами нужны глубокие знания программирования. На самом деле, даже новичок сможет освоить базовые функции за 10-15 минут. Главное — понимать, что Excel хранит даты как числа (где 1 соответствует 1 января 1900 года), а время — как дробную часть. Это знание поможет избежать ошибок при вычислениях. Далее вы найдёте пошаговые инструкции с формулами, примерами и визуальными таблицами, которые упростят работу с календарём в электронных таблицах.

———

1. Базовые принципы: как Excel работает с датами

Прежде чем переходить к формулам, важно разобраться, как Excel интерпретирует даты. Программа использует серийный номер даты — это количество дней, прошедших с 1 января 1900 года. Например, дата 01.01.2026 в Excel хранится как число 45292. Такое представление позволяет легко выполнять арифметические операции: прибавлять дни, вычитать месяцы или сравнивать даты между собой.

Чтобы увидеть серийный номер любой даты, достаточно изменить формат ячейки на Общий:

  1. Выделите ячейку с датой.
  2. Нажмите правой кнопкой мыши и выберите Формат ячеек.
  3. Перейдите на вкладку Число и выберите формат Общий.

Это полезно знать, если вы работаете с формулами, где требуется преобразовать текст в дату или наоборот. Например, функция =ДАТАЗНАЧ("01.01.2026") вернёт серийный номер, который Excel распознаёт как дату.

⚠️

Внимание: В Excel для Mac система отсчёта начинается с 1 января 1904 года, а не 1900. Это может привести к расхождению в 4 года при импорте данных из других источников. Чтобы избежать ошибок, проверьте настройки в Параметры Excel → Дополнительно → При переходе на эту книгу → Дата 1904.

2. Как прибавить или вычесть дни к дате

Самая простая операция — сдвиг даты на определённое количество дней. Для этого не нужны сложные функции: достаточно использовать арифметические действия. Например, чтобы узнать дату через 15 дней от сегодняшнего дня, введите:

=СЕГОДНЯ()+15

А если нужно прибавить дни к конкретной дате (например, 10.05.2026), используйте формулу:

=ДАТА(2026;5;10)+30

где 30 — количество дней, которые вы хотите добавить.

Для вычитания дней используйте знак -:

=ДАТА(2026;5;10)-7

🔹 Практические примеры:

  • 📅 Срок оплаты счёта: =ДАТА(2026;3;15)+14 (14 дней на оплату).
  • Остаток до дедлайна: =ДАТА(2026;6;30)-СЕГОДНЯ() (сколько дней осталось до 30 июня).
  • 📦 Срок доставки: =СЕГОДНЯ()+5 (доставка через 5 рабочих дней).

📊 Как часто вы используете функции дат в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

3. Работа с месяцами и годами: функция ДАТА()

Чтобы прибавить или вычесть месяцы, используйте функцию =ДАТА(). Её синтаксис:

=ДАТА(год; месяц; день)

Где:

- год — год даты (может быть четырёхзначным или двухзначным, например, 24 для 2026).

- месяц — номер месяца (от 1 до 12).

- день — день месяца (от 1 до 31).

🔹 Пример 1: Прибавить 3 месяца к дате 15.02.2026:

=ДАТА(2026; 2+3; 15)

Результат: 15.05.2026.

🔹 Пример 2: Вычесть 1 год и 2 месяца из текущей даты:

=ДАТА(ГОД(СЕГОДНЯ())-1; МЕСЯЦ(СЕГОДНЯ())-2; ДЕНЬ(СЕГОДНЯ()))

⚠️

Внимание: Если при вычитании месяцев результат выходит за пределы года (например, МЕСЯЦ(СЕГОДНЯ())-2 для января даст -1), Excel автоматически скорректирует год. Но лучше использовать функцию =ДАТАМЕС() (см. следующий раздел), чтобы избежать ошибок.

☑️ Проверка формулы перед использованием

Выполнено: 0 / 4

4. Функция ДАТАМЕС(): универсальный инструмент для месяцев

Функция =ДАТАМЕС() специально создана для добавления или вычитания месяцев к дате. Её преимущество — автоматическая корректировка года при переходе через границы месяца. Синтаксис:

=ДАТАМЕС(начальная_дата; количество_месяцев)

🔹 Примеры:

  • 📅 Продление абонемента: =ДАТАМЕС("15.03.2026"; 6) (прибавить 6 месяцев).
  • 📉 Истечение гарантии: =ДАТАМЕС(СЕГОДНЯ(); -12) (вычесть 1 год).
  • 📈 Квартальный отчёт: =ДАТАМЕС("31.12.2023"; 3) (дату через квартал).

💡 Секретный приём: Чтобы прибавить годы, умножьте количество лет на 12. Например, прибавить 2 года:

=ДАТАМЕС("10.10.2026"; 2*12)

5. Разница между датами: функция РАЗНДАТ()

Функция =РАЗНДАТ() позволяет вычислить разницу между двумя датами в днях, месяцах или годах. Это незаменимый инструмент для расчёта стажа, сроков выполнения задач или возраста. Синтаксис:

=РАЗНДАТ(начальная_дата; конечная_дата; единица_измерения)

Где единица_измерения может принимать значения:

- "d" — дни,

- "m" — месяцы,

- "y" — годы.

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

Задача Формула Результат (для дат 01.01.2020 и 15.05.2026)
Количество полных лет =РАЗНДАТ("01.01.2020"; "15.05.2026"; "y") 4
Количество месяцев между датами =РАЗНДАТ("01.01.2020"; "15.05.2026"; "m") 52
Количество дней =РАЗНДАТ("01.01.2020"; "15.05.2026"; "d") 1586

⚠️

Внимание: Функция РАЗНДАТ() не учитывает високосные годы при расчёте в месяцах. Например, разница между 28.02.2023 и 28.02.2026 в месяцах будет 12, хотя фактически прошло 12 месяцев и 1 день (из-за 29 февраля 2026). Для точных расчётов используйте комбинацию с ДАТАМЕС().

Как посчитать возраст с учётом дня рождения?

Используйте формулу:

=ЕСЛИ(ИЛИ(МЕСЯЦ(СЕГОДНЯ())>МЕСЯЦ(A2); И(МЕСЯЦ(СЕГОДНЯ())=МЕСЯЦ(A2); ДЕНЬ(СЕГОДНЯ())>=ДЕНЬ(A2))); РАЗНДАТ(A2; СЕГОДНЯ(); "y"); РАЗНДАТ(A2; СЕГОДНЯ(); "y")-1)

где A2 — ячейка с датой рождения. Формула проверяет, прошёл ли день рождения в этом году.

6. Рабочие дни: функция ЧИСТРАБДНИ()

Если вам нужно высчитать дату с учётом только рабочих дней (исключая выходные и праздники), используйте функцию =ЧИСТРАБДНИ(). Она идеально подходит для расчёта сроков выполнения задач, доставки или производственных графиков. Синтаксис:

=ЧИСТРАБДНИ(начальная_дата; количество_дней; [праздники])

Где [праздники] — необязательный диапазон ячеек с датами праздников.

🔹 Пример: Рассчитать дату завершения проекта через 10 рабочих дней с учётом новогодних каникул:

=ЧИСТРАБДНИ(СЕГОДНЯ(); 10; B2:B5)

где B2:B5 — ячейки с датами праздников (например, 01.01.2026, 02.01.2026 и т.д.).

📌 Важно: По умолчанию ЧИСТРАБДНИ() считает субботу и воскресенье выходными. Если у вас другой график (например, рабочая суббота), используйте функцию =ЧИСТРАБДНИ.МЕЖД(), где можно указать собственные выходные дни.

7. Продвинутые техники: динамические даты и условная логика

Для сложных расчётов можно комбинировать функции дат с условной логикой (ЕСЛИ), поиском (ВПР) или массивами. Рассмотрим несколько примеров:

🔹 Пример 1: Автоматическое определение квартала

=ЕСЛИ(МЕСЯЦ(A2)<=3; "Q1"; ЕСЛИ(МЕСЯЦ(A2)<=6; "Q2"; ЕСЛИ(МЕСЯЦ(A2)<=9; "Q3"; "Q4")))

где A2 — ячейка с датой.

🔹 Пример 2: Проверка просрочки платежа

=ЕСЛИ(СЕГОДНЯ()>A2; "Просрочено"; "Активно")

где A2 — дата оплаты.

🔹 Пример 3: Расчёт даты следующего рабочего дня после праздников

=ЕСЛИ(ЧИСТРАБДНИ(СЕГОДНЯ();1;B2:B10)=0; ЧИСТРАБДНИ(СЕГОДНЯ();2;B2:B10); ЧИСТРАБДНИ(СЕГОДНЯ();1;B2:B10))

Эта формула проверяет, является ли завтра рабочим днём. Если нет (например, из-за праздников), она возвращает следующий рабочий день.

📊 Таблица комбинаций функций для сложных задач:

Задача Формула Пояснение
Последний день месяца =ДАТА(ГОД(A2); МЕСЯЦ(A2)+1; 0) Возвращает 31.01.2026 для любой даты января 2026
Первый день квартала =ДАТА(ГОД(A2); ОКРВНИЗ(МЕСЯЦ(A2)/3;0)*3+1; 1) Для 15.05.2026 вернёт 01.04.2026
Количество будних дней между датами =ЧИСТРАБДНИ(A2; B2; C2:C10)-1 Вычитаем 1, чтобы не учитывать начальную дату

📊 Какую функцию дат в Excel вы используете чаще всего?
ДАТА()
ДАТАМЕС()
РАЗНДАТ()
ЧИСТРАБДНИ()
Другую

FAQ: Ответы на частые вопросы

🔹 Как в Excel посчитать количество дней между двумя датами, исключая выходные?

Используйте функцию =ЧИСТРАБДНИ(начальная_дата; конечная_дата; [праздники]). Если праздников нет, оставьте третий аргумент пустым. Например:

=ЧИСТРАБДНИ("01.01.2026"; "31.01.2026")

вернёт количество рабочих дней в январе 2026 года (исключая субботы и воскресенья).

🔹 Почему функция РАЗНДАТ возвращает неверное количество месяцев?

Функция РАЗНДАТ считает полные месяцы между датами, игнорируя дни. Например, разница между 31.01.2026 и 01.03.2026 в месяцах будет 1, хотя фактически прошло 1 месяц и 1 день. Для точного расчёта комбинируйте РАЗНДАТ с проверкой дней:

=РАЗНДАТ(A2; B2; "m") & " мес. " & РАЗНДАТ(A2; B2; "md") & " дн."

🔹 Можно ли в Excel автоматически обновлять дату при открытии файла?

Да, для этого используйте комбинацию функций СЕГОДНЯ() и ТДАТА() (последняя обновляется при каждом изменении файла). Однако автоматическое обновление при открытии требует макросов. Вставьте этот код в модуль VBA:

Private Sub Workbook_Open()

Sheets("Лист1").Range("A1").Value = Date

End Sub

где Лист1 — название вашего листа, а A1 — ячейка для даты.

🔹 Как преобразовать текст в дату (например, "15 мая 2026")?

Используйте функцию =ДАТАЗНАЧ() для форматов типа DD.MM.YYYY или DD/MM/YYYY. Для нестандартных форматов (например, "15 мая 2026") применяйте комбинацию функций:

=ДАТА(ПРАВСИМВ(A2;4); ПОИСКПОЗ(ЛЕВСИМВ(A2;3); {"янв";"фев";"мар";"апр";"мая";"июн";"июл";"авг";"сен";"окт";"ноя";"дек";}0); ЧИСЛОТЕКСТ(ЛЕВСИМВ(A2;2)))

где A2 — ячейка с текстом "15 мая 2026".

🔹 Почему Excel показывает дату как ######?

Это происходит в трёх случаях:

  1. Ширина столбца слишком мала — расширьте его.
  2. Результат формулы — отрицательная дата (например, вычитание большего количества дней, чем содержится в дате). Используйте =ЕСЛИОШИБКА() для обработки.
  3. Неправильный формат ячейки — измените его на Дата.