Мастер-класс по вычислению дат в Excel
Чтобы рассчитать дату в 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 не распознает как дату.
- Функция ДАТАЗНАЧ (DATEVALUE): Преобразует текстовую строку, похожую на дату, в серийный номер даты.
=ДАТАЗНАЧ("10.04.2026")
- Функция ДАТА (DATE): Создает дату из отдельных чисел. Надежный способ избежать ошибок региональных настроек.
=ДАТА(2026; 4; 10)
- Текущая дата: Функция
=СЕГОДНЯ()возвращает текущую дату и обновляется при каждом открытии файла.=ТДАТА()(NOW) добавляет еще и текущее время.
Функции СЕГОДНЯ() и ТДАТА() являются волатильными. Если вам нужно зафиксировать дату создания документа навсегда, введите дату вручную или скопируйте ячейку с формулой и вставьте её как «Значение» (Ctrl+Shift+V).
Частые ошибки при работе с датами
- Неверный формат ячеек: Самая частая проблема. Если формула вернула число (например, 45392), выделите ячейку и выберите формат «Дата» в меню формата ячеек.
- Региональные конфликты: Дата
02/03/2026в американской версии Excel будет прочитана как 2 марта, а в российской — как 3 февраля. Всегда используйте функциюДАТА(год; месяц; день)для однозначности. - Ошибки в DATEDIF: Функция вернет ошибку
#ЧИСЛО!, если дата окончания меньше даты начала. Проверяйте порядок аргументов.
FAQ
Как быстро узнать, какой день недели у определенной даты?
Используйте функцию =ДЕНЬНЕД(A1; 2). Аргумент 2 настроит нумерацию так, что понедельник будет 1, а воскресенье — 7.
Можно ли суммировать длительности (дни + часы)?
Да. Убедитесь, что ячейка с результатом имеет пользовательский формат [ч]:мм или [д] "дн." ч:мм, чтобы часы не сбрасывались после 24 часов.
Как выделить цветом даты, которые уже прошли?
Используйте условное форматирование. Правило: «Формула» -> =A1 < СЕГОДНЯ(). Выберите красный цвет заливки для просроченных задач.