Расчет интервалов между датами в Excel
Чтобы быстро узнать количество дней между двумя датами в Excel, используйте простую формулу вычитания: =Конец - Начало. Например, если дата начала в ячейке A2, а дата конца в B2, формула =B2-A2 вернет число дней. Для подсчета рабочих дней (исключая выходные) примените функцию =ЧИСТРАБДНИ(A2; B2).
Базовые методы вычисления разницы
Самый простой способ получить разницу — арифметическое вычитание. Excel хранит даты как порядковые номера, поэтому операция возвращает целое число дней.
Основные варианты:
- Простая разница:
=B2-A2. Результат может быть отрицательным, если дата начала позже даты окончания. - Модуль разницы:
=ABS(B2-A2). Возвращает положительное число дней независимо от порядка дат. - Включение граничных дат: Если нужно посчитать дни с учетом обоих концов интервала (например, длительность отпуска со дня выезда по день возвращения), добавьте единицу:
=(B2-A2)+1.
Убедитесь, что ячейки с результатом отформатированы как «Общий» или «Числовой». Если стоит формат «Дата», вместо числа дней вы увидите странную дату (например, 05.01.1900).
Функция ДАТАРАЗН (DATEDIF)
Для совместимости со старыми версиями или специфических задач используется скрытая функция ДАТАРАЗН (в английской версии DATEDIF). Она не отображается в списке подсказок, но работает корректно.
Синтаксис: =ДАТАРАЗН(начальная_дата; конечная_дата; "единица")
"d"— полные дни."m"— полные месяцы."y"— полные годы.
Пример: =ДАТАРАЗН(A2; B2; "d") вернет количество полных дней между датами. Эта функция удобна тем, что всегда требует, чтобы конечная дата была больше начальной, иначе выдаст ошибку #ЧИСЛО!, что помогает контролировать логику данных.
Подсчет рабочих дней и учет праздников
Для бизнес-задач часто требуется исключить выходные и государственные праздники. Стандартная неделя в России и многих других странах — пн-пт.
Функция ЧИСТРАБДНИ (NETWORKDAYS)
Формула =ЧИСТРАБДНИ(начало; конец; [праздники]) автоматически исключает субботы и воскресенья.
- Без праздников:
=ЧИСТРАБДНИ(A2; B2) - С праздниками: Третий аргумент позволяет указать диапазон ячеек с датами праздников.
=ЧИСТРАБДНИ(A2; B2; $F$2:$F$10)Где диапазон$F$2:$F$10содержит список нерабочих праздничных дней.
Не забудьте закрепить диапазон праздников абсолютными ссылками (знаки $), если планируете протягивать формулу вниз. Иначе ссылка сместится, и часть праздников не учтется.
Гибкий график: ЧИСТРАБДНИ.ИНТЛ (NETWORKDAYS.INTL)
Если ваша организация работает по сменному графику или выходные выпадают на другие дни (например, только воскресенье или пятница-суббота), используйте расширенную версию функции.
Синтаксис: =ЧИСТРАБДНИ.ИНТЛ(начало; конец; [код_выходных]; [праздники])
Параметр [код_выходных] может быть числом (от 1 до 7) или строкой из семи символов («0» — рабочий, «1» — выходной), начиная с понедельника.
- Пример кода
"0000011"— стандартные выходные (сб, вс). - Пример кода
"0000001"— выходной только воскресенье. - Пример кода
"1111110"— выходной только понедельник (редкий случай).
Работа с датами и временем
Частая проблема: ячейки содержат не только дату, но и время (например, 10.04.2026 14:30). При обычном вычитании результат будет дробным числом (дни + доля суток).
Чтобы получить количество полных дней, игнорируя время, используйте функцию ЦЕЛОЕ (INT):
=ЦЕЛОЕ(B2) - ЦЕЛОЕ(A2)
Эта формула отбрасывает дробную часть (время) у обеих дат перед вычитанием, оставляя чистую разницу в календарных днях.
Типичные ошибки при расчетах
| Ошибка | Причина | Решение |
|---|---|---|
| Результат — дата (#### или 1900 год) | Ячейка результата имеет формат «Дата». | Измените формат ячейки на «Общий» или «Числовой». |
| #ЗНАЧ! | Одна из ячеек содержит текст, а не дату. | Проверьте данные функцией ЕЧИСЛО(). Преобразуйте текст в дату через «Текст по столбцам» или функцию ДАТАЗНАЧ. |
| Отрицательное число | Дата начала позже даты конца. | Используйте ABS() для модуля или проверьте логику ввода данных. |
| Неверный счет рабочих дней | Не указан список праздников. | Создайте отдельный лист со списком праздников и передайте его в третий аргумент ЧИСТРАБДНИ. |
Часто задаваемые вопросы (FAQ)
Как посчитать количество дней от сегодня до определенной даты?
Используйте функцию СЕГОДНЯ(). Формула: =A2 - СЕГОДНЯ(), где A2 — целевая дата. Если нужно учесть только рабочие дни: =ЧИСТРАБДНИ(СЕГОДНЯ(); A2).
Можно ли посчитать разницу в месяцах или годах?
Да, используйте функцию ДАТАРАЗН с кодами "m" (месяцы) или "y" (годы). Альтернатива для месяцев: =(ГОД(B2)-ГОД(A2))*12 + МЕСЯЦ(B2)-МЕСЯЦ(A2).
Почему формула выдает #ЧИСЛО!?
В функции ДАТАРАЗН конечная дата обязательно должна быть больше начальной. В обычных формулах вычитания такая ошибка возникает, если формат ячеек не распознан как дата.