Как посчитать количество дней до определённой даты в Excel: формулы и примеры

Зачем считать дни в Excel и где это пригодится

Расчёт количества дней между датами — одна из самых востребованных операций в Microsoft Excel и Google Таблицах. Эта задача возникает в бухгалтерии (сроки оплаты счетов), логистике (время доставки), HR (испытательный срок сотрудников), личных финансах (планирование платежей) и даже в повседневных задачах — например, чтобы узнать, сколько дней осталось до отпуска или важного события.

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

В этой статье вы найдёте:

  • 🔹 5 рабочих формул для подсчёта дней (с примерами и скриншотами)
  • 🔹 Как исключить выходные и праздники из расчёта
  • 🔹 Типичные ошибки и способы их исправления
  • 🔹 Готовые шаблоны таблиц для скачивания

Способ 1: Простая разница между датами (функция РАЗНДАТ)

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

Синтаксис функции:

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

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

  • 📅 "D" — разница в днях (самый частый вариант)
  • 📅 "M" — разница в полных месяцах
  • 📅 "Y" — разница в полных годах

Пример: чтобы узнать, сколько дней осталось до Нового года (31.12.2026), если сегодня 15.05.2026, используем формулу:

=РАЗНДАТ("15.05.2026"; "31.12.2026"; "D")

Результат: 229 дней.

Способ 2: Автоматический подсчёт дней до сегодняшней даты (функция СЕГОДНЯ)

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

Формула будет выглядеть так:

=РАЗНДАТ(дата_события; СЕГОДНЯ(); "D")

Пример: в ячейке A1 указана дата рождения 12.03.1990. Чтобы узнать, сколько дней вы живете на Земле, введите:

=РАЗНДАТ(A1; СЕГОДНЯ(); "D")

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

=РАЗНДАТ(СЕГОДНЯ(); дата_отпуска; "D")

Способ 3: Исключаем выходные и праздники (функция ЧИСТРАБДНИ)

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

Синтаксис:

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

Необязательный аргумент [праздники] — это диапазон ячеек с датами нерабочих дней (например, 1 января, 9 мая и т.д.).

Пример: посчитаем рабочие дни между 1 мая 2026 и 15 мая 2026, исключив праздники (1–3 мая и 9 мая).

  1. В ячейках D1:D4 перечислим праздники: 01.05.2026, 02.05.2026, 03.05.2026, 09.05.2026.
  2. Введём формулу: =ЧИСТРАБДНИ("01.05.2026"; "15.05.2026"; D1:D4).

Результат: 9 рабочих дней (вместо 14 календарных).

Как добавить праздники автоматически?

Если праздники повторяются ежегодно (например, 8 марта), создайте отдельный лист с формулами, которые автоматически обновляют даты. Например, для 8 марта 2026 года: =ДАТА(2026; 3; 8). Затем ссылайтесь на этот диапазон в функции ЧИСТРАБДНИ.

Функция Назначение Пример Результат
РАЗНДАТ Разница в днях/месяцах/годах =РАЗНДАТ("01.01.2026"; "31.12.2026"; "D") 365
СЕГОДНЯ Текущая дата =СЕГОДНЯ() 15.05.2026*
ЧИСТРАБДНИ Рабочие дни (без выходных) =ЧИСТРАБДНИ("01.05.2026"; "15.05.2026") 11
ДАТА Создание даты из года, месяца, дня =ДАТА(2026; 12; 31) 31.12.2026

* Примерный результат — зависит от текущей даты.

Способ 4: Подсчёт дней между датами без функций (простое вычитание)

Мало кто знает, но в Excel даты хранятся как числа: 1 января 1900 года = 1, а каждая следующая дата увеличивает это число на единицу. Поэтому разницу между датами можно посчитать простым вычитанием.

Пример: в ячейке A1 дата 10.05.2026, в B120.05.2026. Формула:

=B1 - A1

Результат: 10 дней.

Этот метод работает и с функцией СЕГОДНЯ:

=СЕГОДНЯ() - A1
📊 Какой способ подсчёта дней вы используете чаще?
Функция РАЗНДАТ
Простое вычитание
ЧИСТРАБДНИ (рабочие дни)
Другой вариант
⚠️ Внимание: При вычитании дат убедитесь, что ячейки имеют формат Дата, а не Текст. Если Excel воспринимает дату как текст (например, после импорта из CSV), формула вернёт ошибку. Чтобы исправить, выделите ячейки и выберите формат Дата на вкладке Главная.

Способ 5: Динамический календарь с подсчётом дней (продвинутый уровень)

Для визуализации оставшихся дней до события можно создать динамический календарь с условным форматированием. Например, чтобы отслеживать дедлайны проектов.

Алгоритм действий:

  1. Создайте таблицу с датами событий в столбце A и названиями в столбце B.
  2. В столбце C добавьте формулу для подсчёта дней: =РАЗНДАТ(СЕГОДНЯ(); A1; "D").
  3. Выделите столбец C и примените Условное форматирование (вкладка Главная):
    • 🔴 Для значений < 0 (простроченные задачи) — красный цвет.
    • 🟡 Для значений от 0 до 7 — жёлтый.
    • 🟢 Для значений > 7 — зелёный.

Теперь при открытии файла Excel будет автоматически подсвечивать срочные задачи.

☑️ Создание динамического календаря

Выполнено: 0 / 4

Типичные ошибки и как их исправить

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

⚠️ Внимание: Если функция РАЗНДАТ возвращает ошибку #ИМЯ?, проверьте регистр: в русскоязычной версии Excel название функции пишется заглавными буквамиРАЗНДАТ, а не разндат или DATEDIF.

Другие частые ошибки:

  • 🗓 Некорректный формат даты: Excel не распознаёт текст как дату (например, "1 мая" вместо "01.05.2026"). Исправьте формат ячейки или используйте функцию ДАТАЗНАЧ для преобразования.
  • 🔢 Отрицательное значение: Если начальная дата позже конечной, результат будет отрицательным. Поменяйте аргументы местами или используйте функцию АБС (абсолютное значение): =АБС(РАЗНДАТ(A1; B1; "D")).
  • 📊 Ошибка #ЗНАЧ!: Возникает, если в ячейке вместо даты содержится текст или пустое значение. Проверьте данные с помощью функции ЕЧИСЛО.

Критическая особенность функции ЧИСТРАБДНИ: она считает субботу и воскресенье выходными по умолчанию, но не учитывает региональные праздники (например, 2 января в России — выходной, но не является официальным праздничным днём). Чтобы избежать ошибок, всегда указывайте полный список нерабочих дней в третьем аргументе.

Готовые шаблоны для скачивания

Чтобы сэкономить время, вы можете скачать готовые шаблоны Excel с формулами для подсчёта дней:

Все шаблоны совместимы с Excel 2010–2026 и Google Таблицами. Для открытия в Google Sheets загрузите файл в формате .xlsx и выберите Файл → Импорт.

Часто задаваемые вопросы

Как посчитать дни между датами в Google Таблицах?

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

  • =DATEDIF(A1; B1; "D") — аналог РАЗНДАТ.
  • =TODAY() — аналог СЕГОДНЯ.
  • =NETWORKDAYS(A1; B1) — аналог ЧИСТРАБДНИ.

Обратите внимание: в Google Таблицах функция DATEDIF может не отображаться в подсказках, но она работает.

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

Ошибка #ЧИСЛО! возникает, если:

  1. Начальная дата позже конечной (используйте =АБС(РАЗНДАТ(...))).
  2. Один из аргументов не является датой (проверьте формат ячейки).
  3. Вы указали неверный третий аргумент (допустимы только "D", "M", "Y").
Как посчитать количество полных недель между датами?

Чтобы узнать количество полных недель, разделите разницу в днях на 7 и округлите в меньшую сторону:

=ЦЕЛОЕ(РАЗНДАТ(A1; B1; "D") / 7)

Пример: между 1 января и 31 января (30 дней) — 4 полные недели.

Можно ли посчитать дни с учётом только рабочих часов?

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

  1. Посчитать рабочие дни (ЧИСТРАБДНИ).
  2. Умножить результат на количество рабочих часов в день (например, =ЧИСТРАБДНИ(A1; B1) * 8 для 8-часового рабочего дня).

Для точного расчёта с учётом перерывов и сменного графика потребуется VBA-скрипт.

Как автоматически обновлять даты при открытии файла?

Функция СЕГОДНЯ() обновляется автоматически, но если нужно принудительно пересчитать все формулы:

  1. Нажмите F9 (пересчёт всех формул в книге).
  2. Или перейдите на вкладку ФормулыВычислить сейчас.

В Google Таблицах пересчёт происходит при любом изменении данных.