Зачем считать дни в 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 мая).
- В ячейках
D1:D4перечислим праздники:01.05.2026,02.05.2026,03.05.2026,09.05.2026. - Введём формулу:
=ЧИСТРАБДНИ("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, в B1 — 20.05.2026. Формула:
=B1 - A1
Результат: 10 дней.
Этот метод работает и с функцией СЕГОДНЯ:
=СЕГОДНЯ() - A1
⚠️ Внимание: При вычитании дат убедитесь, что ячейки имеют форматДата, а неТекст. Если Excel воспринимает дату как текст (например, после импорта из CSV), формула вернёт ошибку. Чтобы исправить, выделите ячейки и выберите форматДатана вкладкеГлавная.
Способ 5: Динамический календарь с подсчётом дней (продвинутый уровень)
Для визуализации оставшихся дней до события можно создать динамический календарь с условным форматированием. Например, чтобы отслеживать дедлайны проектов.
Алгоритм действий:
- Создайте таблицу с датами событий в столбце
Aи названиями в столбцеB. - В столбце
Cдобавьте формулу для подсчёта дней:=РАЗНДАТ(СЕГОДНЯ(); A1; "D"). - Выделите столбец
Cи применитеУсловное форматирование(вкладкаГлавная): - 🔴 Для значений <
0(простроченные задачи) — красный цвет. - 🟡 Для значений от
0до7— жёлтый. - 🟢 Для значений >
7— зелёный.
Теперь при открытии файла Excel будет автоматически подсвечивать срочные задачи.
☑️ Создание динамического календаря
Типичные ошибки и как их исправить
Даже опытные пользователи Excel иногда сталкиваются с ошибками при работе с датами. Вот самые распространённые проблемы и их решения:
⚠️ Внимание: Если функцияРАЗНДАТвозвращает ошибку#ИМЯ?, проверьте регистр: в русскоязычной версии Excel название функции пишется заглавными буквами —РАЗНДАТ, а неразндатилиDATEDIF.
Другие частые ошибки:
- 🗓 Некорректный формат даты: Excel не распознаёт текст как дату (например,
"1 мая"вместо"01.05.2026"). Исправьте формат ячейки или используйте функциюДАТАЗНАЧдля преобразования. - 🔢 Отрицательное значение: Если начальная дата позже конечной, результат будет отрицательным. Поменяйте аргументы местами или используйте функцию
АБС(абсолютное значение):=АБС(РАЗНДАТ(A1; B1; "D")). - 📊 Ошибка #ЗНАЧ!: Возникает, если в ячейке вместо даты содержится текст или пустое значение. Проверьте данные с помощью функции
ЕЧИСЛО.
Критическая особенность функции ЧИСТРАБДНИ: она считает субботу и воскресенье выходными по умолчанию, но не учитывает региональные праздники (например, 2 января в России — выходной, но не является официальным праздничным днём). Чтобы избежать ошибок, всегда указывайте полный список нерабочих дней в третьем аргументе.
Готовые шаблоны для скачивания
Чтобы сэкономить время, вы можете скачать готовые шаблоны Excel с формулами для подсчёта дней:
- 📥 Шаблон 1: Календарь с обратным отсчётом до события (включает условное форматирование).
- 📥 Шаблон 2: Табель рабочего времени с подсчётом отработанных дней (исключает выходные и праздники).
- 📥 Шаблон 3: Трекер дедлайнов для проектов (автоматическая сортировка по срокам).
Все шаблоны совместимы с Excel 2010–2026 и Google Таблицами. Для открытия в Google Sheets загрузите файл в формате .xlsx и выберите Файл → Импорт.
Часто задаваемые вопросы
Как посчитать дни между датами в Google Таблицах?
В Google Sheets используются те же функции, но с английскими названиями:
=DATEDIF(A1; B1; "D")— аналогРАЗНДАТ.=TODAY()— аналогСЕГОДНЯ.=NETWORKDAYS(A1; B1)— аналогЧИСТРАБДНИ.
Обратите внимание: в Google Таблицах функция DATEDIF может не отображаться в подсказках, но она работает.
Почему функция РАЗНДАТ возвращает ошибку #ЧИСЛО?
Ошибка #ЧИСЛО! возникает, если:
- Начальная дата позже конечной (используйте
=АБС(РАЗНДАТ(...))). - Один из аргументов не является датой (проверьте формат ячейки).
- Вы указали неверный третий аргумент (допустимы только
"D","M","Y").
Как посчитать количество полных недель между датами?
Чтобы узнать количество полных недель, разделите разницу в днях на 7 и округлите в меньшую сторону:
=ЦЕЛОЕ(РАЗНДАТ(A1; B1; "D") / 7)
Пример: между 1 января и 31 января (30 дней) — 4 полные недели.
Можно ли посчитать дни с учётом только рабочих часов?
Excel не имеет встроенной функции для подсчёта рабочих часов, но вы можете:
- Посчитать рабочие дни (
ЧИСТРАБДНИ). - Умножить результат на количество рабочих часов в день (например,
=ЧИСТРАБДНИ(A1; B1) * 8для 8-часового рабочего дня).
Для точного расчёта с учётом перерывов и сменного графика потребуется VBA-скрипт.
Как автоматически обновлять даты при открытии файла?
Функция СЕГОДНЯ() обновляется автоматически, но если нужно принудительно пересчитать все формулы:
- Нажмите
F9(пересчёт всех формул в книге). - Или перейдите на вкладку
Формулы→Вычислить сейчас.
В Google Таблицах пересчёт происходит при любом изменении данных.