Полный гид по работе с датами в Excel
Для получения текущей даты используйте =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 апреля, а не ошибку.
Границы месяца и количество дней
Часто требуется узнать, сколько дней в конкретном месяце, или найти последний день периода для закрытия отчетов.
- Последний день месяца: Функция
EOMONTH(End of Month).- Формула:
=EOMONTH(A1; 0)— последний день текущего месяца даты в A1. - Формула:
=EOMONTH(A1; 1)— последний день следующего месяца.
- Формула:
- Количество дней в месяце: Оберните предыдущую формулу в функцию
DAY.- Формула:
=DAY(EOMONTH(A1; 0)) - Пример: Для даты 15.02.2026 результат будет 28, для 15.03.2026 — 31.
- Формула:
- Первый день месяца:
- Формула:
=DATE(YEAR(A1); MONTH(A1); 1)
- Формула:
Эти конструкции незаменимы при расчете зарплаты, арендных платежей или остатков на складе на конец периода.
Определение выходных и рабочих дней
Функция WEEKDAY возвращает номер дня недели для заданной даты. По умолчанию (второй аргумент = 2) нумерация удобна для РФ: 1 = Понедельник, ..., 7 = Воскресенье.
- Номер дня недели:
=WEEKDAY(A1; 2) - Проверка на выходной:
=ИЛИ(WEEKDAY(A1; 2)>5)вернет ИСТИНА, если это суббота (6) или воскресенье (7).
Автоматическое выделение выходных
Чтобы визуально отделить выходные в таблице:
- Выделите столбец с датами.
- Нажмите Главная > Условное форматирование > Создать правило.
- Выберите «Использовать формулу...» и введите:
=WEEKDAY(A1; 2)>5(замените A1 на адрес первой ячейки выделения). - Задайте красный цвет заливки.
Учет праздников в расчетах
Стандартные функции пропускают субботу и воскресенье, но игнорируют государственные праздники. Для точного расчета сроков поставок или дедлайнов создайте отдельный список праздничных дат (например, в диапазоне 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), иначе при копировании формулы ссылка сместится, и праздники перестанут учитываться.
Частые ошибки
- Дата отображается как число (например, 45392).
- Причина: Ячейке присвоен «Общий» или «Числовой» формат.
- Решение: Нажмите
Ctrl+1, выберите категорию «Дата» и нужный формат отображения.
- Формула возвращает ошибку #ЗНАЧ!
- Причина: Одна из ячеек содержит дату в текстовом формате (например, "десятое апреля") или лишние пробелы.
- Решение: Проверьте исходные данные, используйте функцию
ПРОБЕЛЫ()или преобразуйте текст в дату через «Текст по столбцам».
- Неправильный расчет разницы дат.
- Причина: Вычитание в неправильном порядке (
Старая дата - Новая датадает отрицательное число). - Решение: Всегда вычитайте более раннюю дату из более поздней или используйте функцию
ABS()для модуля числа.
- Причина: Вычитание в неправильном порядке (
FAQ
Как посчитать возраст человека в годах?
Используйте скрытую, но надежную функцию РАЗНДАТ: =РАЗНДАТ(Дата_рождения; TODAY(); "y"). Аргумент "y" возвращает полные годы.
Можно ли сделать свой график выходных (например, 2 через 2)?
Да, используйте функцию WORKDAY.INTL. В ней можно задать строку из нулей и единиц, где 1 — это выходной. Например, "0010011" сделает выходными среду, субботу и воскресенье.
Как добавить только рабочие дни к дате, игнорируя праздники?
Формула =WORKDAY(Дата; Кол-во_дней; Список_праздников) делает именно это. Она сдвигает дату вперед, перепрыгивая через выходные и указанные праздники.