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

Почему расчёт дней в Excel — это не так просто, как кажется

На первый взгляд, подсчёт дней между двумя датами в Microsoft Excel или Google Таблицах кажется элементарной задачей. Однако даже опытные пользователи сталкиваются с неожиданными ошибками: программа может вернуть отрицательное число, неверный результат из-за форматов ячеек или игнорировать високосные годы. Например, если вы попытаетесь вычесть 01.01.2023 из 31.12.2022 без корректной настройки, Excel выдаст бессмысленный набор символов вместо ожидаемого −1.

В этой статье мы разберём 5 надёжных методов расчёта дней — от базового вычитания до продвинутых функций вроде DATEDIF и NETWORKDAYS. Вы узнаете, как учитывать только рабочие дни, игнорировать праздники, а также избегать типичных ошибок при работе с датами в формате ДД.ММ.ГГГГ или ММ/ДД/ГГ. Особое внимание уделим нюансам, которые не описаны в стандартной справке Excel — например, почему функция DAYS может давать сбой при неявном преобразовании текста в дату.

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

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

=B2-A2

где A2 — начальная дата (15.05.2026), а B2 — конечная (20.05.2026), вернёт результат 5. Этот метод работает и в обратную сторону: если вычесть более позднюю дату из ранней, получится отрицательное число (например, −5).

  • Плюсы: минимальные затраты времени, не требует знания функций.
  • ⚠️ Минусы: не учитывает рабочие/выходные дни, чувствителен к формату ячеек.
⚠️ Внимание: Если после вычитания вы видите вместо числа дату вроде 04.01.1900, проверьте формат ячейки с результатом. Выделите её, нажмите Ctrl+1 (или Формат ячеекЧисловой) и выберите формат Общий или Числовой.

Метод 2: Функция DATEDIF — гибкость и точность

Функция DATEDIF (от англ. Date Difference) — один из самых мощных инструментов для работы с датами, хотя и не документирован в последних версиях Excel. Она позволяет вычислять разницу не только в днях, но и в месяцах или годах. Синтаксис:

=DATEDIF(начальная_дата; конечная_дата; "единица_измерения")

Для подсчёта дней используйте параметр "D":

=DATEDIF(A2; B2; "D")

Эта функция корректно обрабатывает високосные годы и не требует ручной настройки форматов. Например, для дат 28.02.2026 и 01.03.2026 она вернёт 2 (с учётом високосного дня в 2026 году).

Параметр Описание Пример результата
"D" Количество полных дней между датами =DATEDIF("01.01.2026"; "10.01.2026"; "D")9
"M" Количество полных месяцев =DATEDIF("01.01.2026"; "10.02.2026"; "M")1
"Y" Количество полных лет =DATEDIF("01.01.2020"; "01.01.2026"; "Y")4
⚠️ Внимание: Если начальная дата позже конечной, DATEDIF вернёт ошибку #ЧИСЛО!. Чтобы избежать этого, используйте функцию ABS (абсолютное значение): =ABS(DATEDIF(A2; B2; "D")).
📊 Какой метод расчёта дней вы используете чаще?
Простое вычитание
Функция DATEDIF
Функция DAYS
Другие функции
Не знаю, как это делать

Метод 3: Функция DAYS — современная альтернатива

В Excel 2013 и новее появилась функция DAYS, которая упрощает подсчёт дней между двумя датами. Её синтаксис интуитивно понятен:

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

Например, =DAYS("31.12.2026"; "01.01.2026") вернёт 365 (или 366 для високосного года). Преимущество DAYS перед DATEDIF — она не возвращает ошибку при обратном порядке дат, а просто выдаёт отрицательное число.

  • 📅 Когда использовать: если вам нужна только разница в днях без дополнительных параметров (месяцы, годы).
  • Быстрое решение: комбинация с ABS для гарантированно положительного результата: =ABS(DAYS(B2; A2)).
Почему DAYS может возвращать неверный результат?

Если одна из дат введена как текст (например, "01.01.2026" в кавычках), Excel не преобразует её автоматически. Чтобы исправить это, используйте функцию ДАТАЗНАЧ: =DAYS(ДАТАЗНАЧ(B2); ДАТАЗНАЧ(A2)).

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

Если вам нужно узнать, сколько рабочих дней прошло между двумя датами (например, для расчёта сроков выполнения задач), используйте функцию NETWORKDAYS. Она автоматически исключает субботы и воскресенья:

=NETWORKDAYS(начальная_дата; конечная_дата; [праздники])

Пример: =NETWORKDAYS("01.05.2026"; "10.05.2026") вернёт 6 (с учётом того, что 1, 4–5 и 8–9 мая в 2026 года приходятся на выходные). Необязательный параметр [праздники] позволяет исключить дополнительные дни — например, государственные праздники. Для этого укажите диапазон ячеек с датами праздников:

=NETWORKDAYS(A2; B2; D2:D5)

где D2:D5 — список праздничных дат.

Убедитесь, что все даты введены в формате ДД.ММ.ГГГГ|Проверьте, что праздники указаны в отдельном столбце|Используйте абсолютные ссылки для диапазона праздников (например, $D$2:$D$5), если формула будет копироваться-->

Метод 5: Расчёт дней с учётом текущей даты (динамические формулы)

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

=TODAY()-A2

где A2 — ячейка с начальной датой. Эта формула будет ежедневно пересчитывать разницу. Если нужно наоборот — посчитать дни до будущей даты (например, до дедлайна), используйте:

=B2-TODAY()

где B2 — целевая дата. Если результат отрицательный, это означает, что срок уже истёк.

  • 🔄 Динамическое обновление: функция TODAY пересчитывается при каждом открытии файла или изменении данных.
  • Пример использования: отслеживание сроков годности, контроль дедлайнов проектов, расчёт стажа сотрудников.
⚠️ Внимание: Если файл сохранён в формате .xls (Excel 97–2003), функция TODAY может не обновляться при открытии в новых версиях. Сохраните файл в формате .xlsx или .xlsm для корректной работы.

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

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

  1. Ошибка #ЗНАЧ!: возникает, если одна из ячеек содержит текст вместо даты. Проверьте формат ячеек (должен быть Дата) или используйте ДАТАЗНАЧ для преобразования текста в дату.
  2. Неверный результат из-за региональных настроек: в некоторых странах формат даты по умолчанию — ММ/ДД/ГГГГ. Если вы введёте 01.05.2026, Excel может интерпретировать это как 1 мая (в России) или 5 января (в США). Чтобы избежать путаницы, используйте функцию ДАТА:
=ДАТА(2026; 5; 1)

или указывайте месяц словом:

=ДАТАЗНАЧ("1-май-2026")
  • 📅 Проверка форматов: выделите ячейку с датой и посмотрите, как она отображается в строке формул. Если там текст вроде '01.05.2026 (с апострофом), Excel воспринимает это как строку, а не дату.
  • 🔍 Диагностика: используйте функцию ТИП, чтобы проверить тип данных: =ТИП(A2). Для даты результат будет 1, для текста — 2.

Практические примеры: от простых задач до сложных расчётов

Рассмотрим несколько реальных сценариев, где подсчёт дней в Excel может быть полезен:

Задача Формула Пример результата
Сколько дней осталось до Нового года? =ДАТА(2026;1;1)-TODAY() Если сегодня 15.11.2026, результат — 47
Сколько рабочих дней прошло с начала месяца? =NETWORKDAYS(ДАТА(2026;11;1); TODAY()) Для 15.11.2026 (пятница) — 11
Возраст человека в днях =DATEDIF("15.05.1990"; TODAY(); "D") Для 15.11.202612530
Срок действия договора (в днях) =DAYS("31.12.2026"; TODAY()) Если сегодня 15.11.2026, результат — 46

Критически важный нюанс: при расчёте возраста или стажа с использованием DATEDIF и текущей даты (TODAY) результат будет меняться ежедневно. Если вам нужно зафиксировать значение на определённую дату (например, на момент создания отчёта), замените TODAY() на конкретную дату вручную или используйте комбинацию Ctrl+; для вставки текущей даты как статического значения.

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

Как посчитать дни между датами, если они записаны в разных форматах (например, ДД.ММ.ГГГГ и ММ/ДД/ГГГГ)?

Используйте функцию ДАТА или ДАТАЗНАЧ, чтобы привести даты к единому формату. Например:

=DAYS(ДАТАЗНАЧ("05/01/2026"); ДАТАЗНАЧ("01.05.2026"))

Здесь 05/01/2026 будет интерпретировано как 5 января (если в настройках Excel установлен формат ММ/ДД/ГГГГ), а 01.05.2026 — как 1 мая. Чтобы избежать путаницы, явно укажите месяц числом: =ДАТА(2026; 1; 5) для 5 января.

Почему при вычитании дат получается странное число вроде 45342?

Excel хранит даты в виде последовательных чисел, где 1 соответствует 01.01.1900. Число 45342 — это количество дней с 1 января 1900 года до вашей даты. Чтобы преобразовать его в читаемый формат, измените формат ячейки на Дата (нажмите Ctrl+1 → выберите категорию Дата).

Как посчитать дни с учётом только понедельника-пятницы и исключить праздники?

Используйте функцию NETWORKDAYS.INTL, которая позволяет настраивать выходные дни. Например, чтобы исключить субботу и воскресенье, а также праздники из диапазона D2:D10:

=NETWORKDAYS.INTL(A2; B2; 1; D2:D10)

Параметр 1 обозначает стандартные выходные (суббота-воскресенье). Для других комбинаций (например, пятница-суббота) используйте другие числа (см. справку Microsoft).

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

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

=DATEDIF(A2; B2; "D")

будет работать, но для корректного отображения дат убедитесь, что в настройках файла установлен регион Россия (Файл → Настройки → Региональные настройки).

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

Разделите разницу в днях на 7 и округлите в меньшую сторону с помощью функции ЦЕЛОЕ:

=ЦЕЛОЕ((B2-A2)/7)

Например, для дат 01.01.2026 и 20.01.2026 (разница 19 дней) результат будет 2 (полных недели).