Как посчитать в Excel, сколько дней прошло с заданной даты: 5 рабочих методов

Почему Excel идеально подходит для расчёта дней между датами

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

Главное преимущество Excel — гибкость. Программа не просто вычитает одну дату из другой, но и учитывает рабочие/выходные дни, праздники, а также позволяет анализировать интервалы в годах, месяцах или даже часах. Например, вы можете узнать, сколько полных недель прошло с момента запуска проекта или сколько будних дней осталось до дедлайна.

В этой статье мы разберём 5 методов — от базовых до продвинутых, — которые покроют 90% практических задач. Вы научитесь:

  • 📅 Вычитать даты напрямую (самый простой способ)
  • 📊 Использовать функции ДАТАРАЗН и ДНИ для точных вычислений
  • 🏢 Исключать выходные и праздники из расчётов
  • ⏳ Преобразовывать дни в годы/месяцы/недели
  • 🔄 Автоматизировать обновление дат с помощью СЕГОДНЯ()
📊 Для чего вам чаще всего нужно считать дни в Excel?
Для рабочих проектов
Для личного планирования
Для финансовых расчётов
Для анализа данных
Другое

Метод 1: Простое вычитание дат (базовый способ)

Если вам нужно узнать, сколько дней прошло между двумя конкретными датами, самый быстрый способ — вычесть одну дату из другой. Excel автоматически распознаёт формат дат и возвращает результат в днях.

Пример формулы:

=B2-A2

где A2 — ячейка с начальной датой, а B2 — с конечной. Результат будет целым числом (например, 45 означает 45 дней).

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

Начальная дата (A2) Конечная дата (B2) Формула Результат
15.05.2026 20.05.2026 =B2-A2 5
01.01.2026 01.02.2026 =B2-A2 31
10.12.2023 10.01.2026 =B2-A2 31
⚠️ Внимание: Если результат отображается как дата (например, "05.01.1900"), а не число, измените формат ячейки на Общий или Числовой. Для этого выделите ячейку с результатом и нажмите Ctrl + 1, затем выберите формат.

Метод 2: Функция ДНИ — альтернатива вычитанию

Функция ДНИ (англ. DAYS) специально предназначена для расчёта разницы между двумя датами. Её синтаксис прост:

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

или на английском:

=DAYS(end_date, start_date)

Преимущество этой функции в том, что она явно указывает намерение — код становится более читаемым. Например, формула =ДНИ(СЕГОДНЯ(); A2) сразу понятна: она считает дни с даты в ячейке A2 до сегодняшнего дня.

  • 📌 Подходит для динамических расчётов (например, "дней до дедлайна")
  • 🔍 Меньше ошибок, чем при ручном вычитании
  • 🌍 Работает одинаково во всех локализациях Excel

Пример использования с функцией СЕГОДНЯ():

=ДНИ(СЕГОДНЯ(); "15.03.2026")

Эта формула вернёт количество дней, прошедших с 15 марта 2026 года до текущей даты. Обратите внимание: если текущая дата раньше 15.03.2026, результат будет отрицательным.

Что делать, если функция ДНИ не работает?

Если Excel выдаёт ошибку #ИМЯ?, проверьте:

1. Правильность написания функции (в русскоязычной версии — ДНИ, в английской — DAYS).

2. Формат ячеек с датами (должен быть Дата, а не Текст).

3. Наличие надстройки Пакет анализа (не требуется для этой функции, но иногда влияет на другие функции дат).

Метод 3: Учёт только рабочих дней (исключаем выходные)

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

Синтаксис:

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

Необязательный параметр [праздники] позволяет указать диапазон ячеек с датами праздников, которые также нужно исключить.

Пример: подсчёт рабочих дней между 1 и 31 мая 2026 года (без учёта праздников):

=ЧИСТРАБДНИ("01.05.2026"; "31.05.2026")

Результат: 23 дня (31 день в мае минус 8 выходных).

Период Формула Результат (рабочие дни)
01.05.2026 – 10.05.2026 =ЧИСТРАБДНИ("01.05.2026"; "10.05.2026") 8
01.01.2026 – 31.01.2026 =ЧИСТРАБДНИ("01.01.2026"; "31.01.2026") 23
01.05.2026 – 31.05.2026 (с 9 мая) =ЧИСТРАБДНИ("01.05.2026"; "31.05.2026"; D2:D3) 22

Чтобы добавить праздники, создайте список дат в отдельном диапазоне (например, D2:D10) и укажите его третьим аргументом. Например, для мая 2026 года в России это будет 1 мая (праздник) и 9 мая (выходной).

⚠️ Внимание: Функция ЧИСТРАБДНИ считает полные рабочие дни. Если начальная или конечная дата попадает на выходной, она не учитывается. Например, разница между субботой и понедельником будет 1 (только понедельник).

Создать список праздников в отдельном диапазоне|Проверить формат дат (не текст!)|Указать правильный порядок дат (нач. → кон.)|Использовать абсолютные ссылки для праздников (например, $D$2:$D$10)

-->

Метод 4: Разбивка на годы, месяцы и дни

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

Синтаксис:

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

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

  • "y" — полные годы
  • "m" — полные месяцы
  • "d" — оставшиеся дни
  • "ym" — месяцы без учёта лет
  • "md" — дни без учёта месяцев и лет

Пример: расчёт интервала между 15.02.2020 и 20.05.2026:

=ДАТАРАЗН("15.02.2020"; "20.05.2026"; "y")  → 4 (года)

=ДАТАРАЗН("15.02.2020"; "20.05.2026"; "ym") → 3 (месяца)

=ДАТАРАЗН("15.02.2020"; "20.05.2026"; "md") → 5 (дней)

Функция ДАТАРАЗН учитывает только полные интервалы. Например, если разница между датами — 1 год и 1 день, то ДАТАРАЗН(..."y") вернёт 1, а не 2.

=ДАТАРАЗН(А2;В2;"y") & " лет, " & ДАТАРАЗН(А2;В2;"ym") & " мес., " & ДАТАРАЗН(А2;В2;"md") & " дн."

-->

Метод 5: Автоматическое обновление с функцией СЕГОДНЯ()

Если вам нужно отслеживать, сколько дней прошло с фиксированной даты до сегодняшнего дня, используйте волшебную функцию СЕГОДНЯ() (англ. TODAY()). Она возвращает текущую дату и обновляется при каждом открытии файла.

Примеры применения:

  • 📅 =СЕГОДНЯ()-A2 — дни с даты в ячейке A2
  • 📊 =ДНИ(СЕГОДНЯ(); "01.01.2026") — дни с начала 2026 года
  • =ЧИСТРАБДНИ(A2; СЕГОДНЯ()) — рабочие дни с даты в A2

Важно: СЕГОДНЯ()летучая функция. Это значит, что она пересчитывается при:

  • Открытии файла
  • Изменении любой ячейки
  • Ручном пересчёте (F9)
⚠️ Внимание: Если вы сохраните файл с функцией СЕГОДНЯ() и откроете его через год, она покажет актуальную дату на момент открытия, а не дату сохранения. Чтобы зафиксировать текущую дату, замените СЕГОДНЯ() на статическое значение (Ctrl + C → Правка → Специальная вставка → Значения).

Пример динамического отчёта:


| A | B | C |

|---------------------|---------------------|---------------------|

| Дата начала проекта| 01.03.2026 | |

| Сегодня |=СЕГОДНЯ() | |

| Дней прошло |=B2-A2 | |

| Рабочих дней |=ЧИСТРАБДНИ(A2;B2) | |

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

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

  1. Текст вместо даты: Excel не распознаёт "01.01.2026" как дату, если ячейка отформатирована как текст. Решение: измените формат на Дата или используйте ДАТАЗНАЧ():
  2. =ДАТАЗНАЧ("01.01.2026")
  3. Отрицательный результат: если конечная дата раньше начальной, формула вернёт отрицательное число. Решение: используйте АБС():
  4. =АБС(B2-A2)
  5. Неучтённые високосные годы: функции Excel корректно обрабатывают 29 февраля, но если вы вручную вычитаете дни, могут возникнуть ошибки. Решение: всегда используйте встроенные функции (ДНИ, ДАТАРАЗН).

Ещё одна частая проблема — разные форматы дат в одном файле. Например, одна дата в формате "дд.мм.гггг", а другая — "мм/дд/гггг". Чтобы унифицировать формат:

  1. Выделите проблемные ячейки.
  2. Нажмите Ctrl + 1 (Формат ячеек).
  3. Выберите категорию Дата и укажите нужный тип (например, "14.03.2012").

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

Можно ли посчитать дни между датой и временем (например, 10.05.2026 14:30)?

Да, Excel поддерживает расчёт интервалов с учётом времени. Используйте ту же формулу вычитания, но результат будет в дробном формате (например, 5,6 означает 5 дней и 14.4 часа). Чтобы разделить дни и часы:

  • Дни: =ЦЕЛОЕ(B2-A2)
  • Часы: =(B2-A2)-ЦЕЛОЕ(B2-A2) (затем умножьте на 24)
Как посчитать дни до конкретной даты в будущем?

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

=ДАТА(год;месяц;день)-СЕГОДНЯ()

Пример для 31 декабря 2026 года:

=ДАТА(2026;12;31)-СЕГОДНЯ()

Если результат отрицательный, дата уже прошла.

Почему функция ДАТАРАЗН возвращает ошибку #ЧИСЛО!?

Ошибка возникает, если:

  • Начальная дата позже конечной (используйте АБС или поменяйте местами).
  • Один из аргументов не является датой (проверьте формат ячеек).
  • Используется неверный код формата (например, "x" вместо "y").
Как посчитать дни между датами в Google Таблицах?

В Google Sheets используются те же принципы, но некоторые функции имеют другие названия:

  • =DAYS(B2; A2) вместо ДНИ
  • =NETWORKDAYS(A2; B2) вместо ЧИСТРАБДНИ
  • =TODAY() вместо СЕГОДНЯ()

Функция DATEDIF работает без изменений.

Можно ли автоматически подсвечивать просроченные даты?

Да, с помощью условного форматирования:

  1. Выделите диапазон с датами.
  2. Перейдите на вкладку Главная → Условное форматирование → Создать правило.
  3. Выберите Использовать формулу... и введите:
  4. =A1<СЕГОДНЯ()
  5. Укажите цвет заполнения (например, красный) и нажмите ОК.

Теперь все даты раньше сегодняшней будут подсвечены.