Полный гид по работе с датами в Excel

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

Для получения текущей даты используйте =TODAY(), для добавления дней просто прибавьте число к ячейке с датой (=A1+5), а чтобы узнать количество рабочих дней с учетом праздников — примените =NETWORKDAYS(начало; конец; диапазон_праздников). Эти три операции покрывают 90% задач планирования и отчетности.

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

Оглавление

Текущая дата и время

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

ФункцияОписаниеПример результата
=TODAY()Возвращает только текущую дату10.04.2026
=NOW()Возвращает дату и текущее время10.04.2026 14:30

Важно: Эти функции являются летучими (volatile). Они пересчитываются при любом изменении в книге. Если вам нужно зафиксировать дату ввода документа навсегда, используйте горячие клавиши Ctrl + ; (точка с запятой) — это вставит статичное значение, которое не изменится завтра.

Арифметика дат: сложение и вычитание

Поскольку даты в Excel — это числа, к ним можно напрямую применять математику.

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

Для работы с месяцами и годами простая арифметика может дать сбой (например, 31 января + 1 месяц ≠ 31 февраля). Используйте функцию EDATE:

  • =EDATE(A1; 3) — дата через 3 месяца.
  • =EDATE(A1; -1) — дата месяц назад.
  • =EDATE(A1; 12) — ровно год спустя.

Функция EDATE умно учитывает високосные годы и разную длину месяцев. Если начальная дата 31 марта, то +1 месяц даст корректно 30 апреля, а не ошибку.

Границы месяца и количество дней

Часто требуется узнать, сколько дней в конкретном месяце, или найти последний день периода для закрытия отчетов.

  1. Последний день месяца: Функция EOMONTH (End of Month).
    • Формула: =EOMONTH(A1; 0) — последний день текущего месяца даты в A1.
    • Формула: =EOMONTH(A1; 1) — последний день следующего месяца.
  2. Количество дней в месяце: Оберните предыдущую формулу в функцию DAY.
    • Формула: =DAY(EOMONTH(A1; 0))
    • Пример: Для даты 15.02.2026 результат будет 28, для 15.03.2026 — 31.
  3. Первый день месяца:
    • Формула: =DATE(YEAR(A1); MONTH(A1); 1)

Эти конструкции незаменимы при расчете зарплаты, арендных платежей или остатков на складе на конец периода.

Определение выходных и рабочих дней

Функция WEEKDAY возвращает номер дня недели для заданной даты. По умолчанию (второй аргумент = 2) нумерация удобна для РФ: 1 = Понедельник, ..., 7 = Воскресенье.

  • Номер дня недели: =WEEKDAY(A1; 2)
  • Проверка на выходной: =ИЛИ(WEEKDAY(A1; 2)>5) вернет ИСТИНА, если это суббота (6) или воскресенье (7).

Автоматическое выделение выходных

Чтобы визуально отделить выходные в таблице:

  1. Выделите столбец с датами.
  2. Нажмите Главная > Условное форматирование > Создать правило.
  3. Выберите «Использовать формулу...» и введите: =WEEKDAY(A1; 2)>5 (замените A1 на адрес первой ячейки выделения).
  4. Задайте красный цвет заливки.

Учет праздников в расчетах

Стандартные функции пропускают субботу и воскресенье, но игнорируют государственные праздники. Для точного расчета сроков поставок или дедлайнов создайте отдельный список праздничных дат (например, в диапазоне Z1:Z15).

ФункцияНазначениеСинтаксис
NETWORKDAYSКоличество рабочих дней между датами=NETWORKDAYS(Начало; Конец; Праздники)
WORKDAYДата окончания работ через N дней=WORKDAY(Начало; Дни; Праздники)

Пример расчета срока проекта: Если проект стартует 01.04.2026 (ячейка A2), длится 20 рабочих дней (B2), а список праздников находится в Z1:Z10: =WORKDAY(A2; B2; $Z$1:$Z$10)

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

Не забудьте закрепить диапазон праздников знаками доллара ($Z$1:$Z$10), иначе при копировании формулы ссылка сместится, и праздники перестанут учитываться.

Частые ошибки

  1. Дата отображается как число (например, 45392).
    • Причина: Ячейке присвоен «Общий» или «Числовой» формат.
    • Решение: Нажмите Ctrl+1, выберите категорию «Дата» и нужный формат отображения.
  2. Формула возвращает ошибку #ЗНАЧ!
    • Причина: Одна из ячеек содержит дату в текстовом формате (например, "десятое апреля") или лишние пробелы.
    • Решение: Проверьте исходные данные, используйте функцию ПРОБЕЛЫ() или преобразуйте текст в дату через «Текст по столбцам».
  3. Неправильный расчет разницы дат.
    • Причина: Вычитание в неправильном порядке (Старая дата - Новая дата дает отрицательное число).
    • Решение: Всегда вычитайте более раннюю дату из более поздней или используйте функцию ABS() для модуля числа.

FAQ

Как посчитать возраст человека в годах? Используйте скрытую, но надежную функцию РАЗНДАТ: =РАЗНДАТ(Дата_рождения; TODAY(); "y"). Аргумент "y" возвращает полные годы.

Можно ли сделать свой график выходных (например, 2 через 2)? Да, используйте функцию WORKDAY.INTL. В ней можно задать строку из нулей и единиц, где 1 — это выходной. Например, "0010011" сделает выходными среду, субботу и воскресенье.

Как добавить только рабочие дни к дате, игнорируя праздники? Формула =WORKDAY(Дата; Кол-во_дней; Список_праздников) делает именно это. Она сдвигает дату вперед, перепрыгивая через выходные и указанные праздники.