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

Расчёт сроков в Microsoft Excel — одна из самых востребованных задач при работе с проектными планами, графиками поставок или личными финансами. Даже если вы никогда не использовали функции даты и времени, освоить их проще, чем кажется: достаточно знать 3-4 базовые формулы и принципы их комбинирования. В этой статье разберём, как вычислять разницу между датами, учитывать только рабочие дни, добавлять месяцы к дате без ошибок с концами месяцев, и даже создавать динамические графики выполнения задач.

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

1. Базовый расчёт: разница между двумя датами

Самая простая задача — узнать, сколько дней прошло между двумя датами. Для этого достаточно вычесть одну дату из другой. Например, если в ячейке A1 указана дата начала проекта (15.05.2026), а в B1 — дата окончания (30.06.2026), формула будет:

=B1-A1

Результат отобразится в формате даты, но если выделить ячейку и применить формат «Общий» или «Числовой», Excel покажет количество дней (в нашем примере — 46). Этот метод работает и для расчёта возраста, срока действия договора или времени выполнения задачи.

  • 📅 Формат ячейки: Убедитесь, что обе ячейки имеют формат Дата (выделите → Главная → Формат → Формат ячеек → Дата). Иначе Excel воспримет значения как текст.
  • ⚠️ Отрицательные значения: Если дата окончания раньше начальной, результат будет отрицательным. Используйте =ABS(B1-A1), чтобы получить модуль разницы.
  • 🔄 Дробные дни: Excel учитывает и время. Если в ячейках указаны дата и время (например, 15.05.2026 14:30), результат будет дробным (например, 46,25 дня = 46 дней и 6 часов).
⚠️ Внимание: Если при вычитании дат вы получаете странное число вроде 45389, проверьте формат ячеек. Скорее всего, Excel интерпретирует введённые данные как текст, а не как дату. Используйте функцию =ДАТАЗНАЧ() для преобразования, например: =ДАТАЗНАЧ("30.06.2026")-ДАТАЗНАЧ("15.05.2026").
📊 Как часто вам приходится считать сроки в Excel?
Ежедневно
Несколько раз в неделю
Редко, по необходимости
Никогда не пользовался

2. Функция ДНИ: простой способ без вычитания

Для тех, кто предпочитает готовые функции, в Excel есть =ДНИ() (англ. DAYS). Она возвращает количество дней между двумя датами и имеет синтаксис:

=ДНИ(дата_окончания; дата_начала)

Например, =ДНИ("30.06.2026"; "15.05.2026") вернёт 46. Преимущество функции в том, что она автоматически игнорирует формат ячеек и всегда возвращает целое число. Это удобно, если исходные даты хранятся в текстовом формате или подтягиваются из внешних источников.

Аналогично работает функция =ДНИ360() (англ. DAYS360), но она использует упрощённую схему расчёта, где каждый месяц считается как 30 дней. Это актуально для финансовых расчётов, где важна стандартизация (например, при начислении процентов по кредитам). Синтаксис:

=ДНИ360(дата_начала; дата_окончания; [метод])
  • 💰 Метод расчёта: Необязательный третий аргумент определяет, как обрабатывается последний день месяца. По умолчанию (ЛОЖЬ) используется европейский метод, где 31-е число приравнивается к 30-му.
  • 📊 Пример: =ДНИ360("15.05.2026"; "30.06.2026") вернёт 45 (а не 46, как в реальном календаре).

3. Рабочие дни: исключаем выходные и праздники

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

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

Третий аргумент — необязательный диапазон ячеек с датами праздников. Например, если в ячейках D1:D5 перечислены праздники (каждый в отдельной ячейке), формула примет вид:

=ЧИСТРАБДНИ(A1; B1; D1:D5)

Для России в 2026 году праздничными днями являются: 1-8 января, 23 февраля, 8 марта, 1-2 мая, 9 мая, 12 июня, 4 ноября. Их можно заранее внести в отдельный лист или диапазон.

ФункцияПримерРезультатПояснение
=ЧИСТРАБДНИ("15.05.2026"; "30.06.2026")33Без учёта праздников
=ЧИСТРАБДНИ("15.05.2026"; "30.06.2026"; D1:D5)В D1:D5 указаны 9 мая и 12 июня31Исключены 2 праздничных дня
=РАБДЕНЬ()=РАБДЕНЬ("15.05.2026"; 10)29.05.2026Добавляет 10 рабочих дней к дате
⚠️ Внимание: Функция =ЧИСТРАБДНИ() считает субботу и воскресенье выходными по умолчанию. Если у вас нестандартный график (например, рабочая суббота), используйте функцию =ЧИСТРАБДНИ.МЕЖД() (англ. NETWORKDAYS.INTL), где можно указать свои выходные дни через числовой код.

4. Добавление дней, месяцев или лет к дате

Часто требуется не только посчитать разницу, но и сдвинуть дату на определённый период. Для этого есть несколько функций:

  • 📅 =ДАТА() — создаёт дату из года, месяца и дня. Полезна для динамических расчётов. Пример: =ДАТА(2026; 5; 15) вернёт 15.05.2026.
  • =ДАТАМЕС() (англ. EDATE) — добавляет указанное количество месяцев к дате. Пример: =ДАТАМЕС("15.05.2026"; 3) вернёт 15.08.2026. Автоматически корректирует дату, если месяц короче (например, 31.01.2026 + 1 месяц = 29.02.2026).
  • 🔢 =ДАТА + число — простой способ добавить дни. Пример: =A1 + 10 сдвинет дату на 10 дней вперёд.

Для добавления лет нет отдельной функции, но можно комбинировать =ДАТА() с =ГОД():

=ДАТА(ГОД(A1)+5; МЕСЯЦ(A1); ДЕНЬ(A1))

Эта формула добавит 5 лет к дате в ячейке A1, сохраняя месяц и день. Если дата выпадает на 29 февраля в невисокосный год, Excel автоматически перенесёт её на 28.02.

Сравните результат с календарём|Учтите переход на зимнее/летнее время (если актуально)|Проверьте формат ячеек с датами|Используйте условное форматирование для выделения просроченных сроков-->

5. Расчёт возраста: сколько полных лет, месяцев и дней

Вычисление возраста — классическая задача, где важно учитывать не только годы, но и месяцы с днями. Например, человек родился 15.05.1990, а сегодня 10.06.2026. Сколько ему полных лет?

Простая разница =ГОД(СЕГОДНЯ())-ГОД("15.05.1990") даст 34, но это неверно, потому что день рождения ещё не наступил. Правильная формула:

=ЕСЛИ(ИЛИ(МЕСЯЦ(СЕГОДНЯ())>МЕСЯЦ("15.05.1990"); И(МЕСЯЦ(СЕГОДНЯ())=МЕСЯЦ("15.05.1990"); ДЕНЬ(СЕГОДНЯ())>=ДЕНЬ("15.05.1990"))); ГОД(СЕГОДНЯ())-ГОД("15.05.1990"); ГОД(СЕГОДНЯ())-ГОД("15.05.1990")-1)

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

=ДОЛЯГОДА("15.05.1990"; СЕГОДНЯ(); 1) & " лет (" & ЦЕЛОЕ(ДОЛЯГОДА("15.05.1990"; СЕГОДНЯ(); 1)*12) & " мес., " & ОСТАТ(ДЕНЬ(СЕГОДНЯ()-"15.05.1990"); 30) & " дн.)"
Важно: функция =ДОЛЯГОДА() может давать погрешности при расчёте возраста из-за разных методов округления. Для точности лучше разделять годы, месяцы и дни на отдельные ячейки.

6. Динамические графики выполнения задач

Если вам нужно визуализировать сроки (например, для диаграммы Ганта), используйте линейчатую диаграмму с накоплением. Для этого:

  1. Создайте таблицу с датами начала и окончания задач.
  2. Добавьте столбец с количеством дней для каждой задачи (например, =B2-A2).
  3. Выделите данные и вставьте Линейчатую диаграмму с накоплением (Вставка → Диаграммы → Линейчатая → С накоплением).
  4. Настройте оси: по горизонтали — дни, по вертикали — задачи.

Для автоматического обновления графика при изменении дат используйте именованные диапазоны или таблицы Excel (Вставка → Таблица). Это позволит добавлять новые задачи без ручной правки диаграммы.

Как добавить линию текущей даты?

Создайте дополнительный ряд данных с формулой =СЕГОДНЯ()-$A$1 (где A1 — дата начала проекта). Добавьте этот ряд на диаграмму и настройте для него отдельную ось или измените цвет линии на красный.

7. Типичные ошибки и как их избежать

Даже опытные пользователи Excel сталкиваются с ошибками при работе с датами. Вот самые распространённые:

  • 🗓️ Текст вместо даты: Если дата введена как текст (например, "15.05.2026" без форматирования), формулы не будут работать. Используйте =ДАТАЗНАЧ() для преобразования.
  • 🌍 Региональные настройки: В американском формате даты месяц идёт первым (MM/DD/YYYY). Если ваш Excel настроен так, 05.06.2026 будет интерпретировано как 5 июня, а не 6 мая. Проверьте настройки в Файл → Параметры → Язык → Региональные параметры.
  • 1900 vs 1904: Excel для Windows по умолчанию использует систему дат с 1900 года, а для Mac — с 1904 года. Это может сбивать расчёты при переносе файлов между платформами. Чтобы проверить, введите =ДАТА(1900;1;1) — если результат 2, у вас система 1900.
⚠️ Внимание: Если при копировании формулы с датами вы получаете ошибку #ЗНАЧ!, проверьте, не содержат ли ячейки пустые значения или текст. Используйте функцию =ЕЧИСЛО() для проверки: =ЕСЛИ(ЕЧИСЛО(A1); A1; "").

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

Как посчитать количество недель между датами?

Разделите разницу в днях на 7 и округлите вверх: =ОКРВВЕРХ(B1-A1; 7). Для точного количества полных недель используйте =ЦЕЛОЕ((B1-A1)/7).

Можно ли учитывать только будние дни без праздников?

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

Как вычесть 3 месяца из даты, если результат выпадает на несуществующий день (например, 31 апреля)?

Функция =ДАТАМЕС() автоматически корректирует дату. Например, =ДАТАМЕС("31.03.2026"; -1) вернёт 29.02.2026 (если год високосный) или 28.02.2026.

Почему функция =ДНИ() возвращает ошибку #ИМЯ?

Скорее всего, у вас английская версия Excel, где функция называется DAYS. Замените на =DAYS() или используйте русскоязычную версию.

Как посчитать срок в часах и минутах?

Умножьте разницу на 24 (для часов) или на 1440 (для минут): =(B1-A1)*24 и =(B1-A1)*1440. Примените формат «Время» к ячейке.