Подсчёт дней между датами
Находите разницу между двумя датами с помощью DATEDIF и вычитания
«Подсчёт дней между датами» — бесплатный урок Excel Formulas Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Excel Formulas Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Excel Formulas Academy содержит 4 уроков всего.
Измерение промежутка
Одна из самых распространённых задач при работе с датами — определить, сколько времени разделяет две даты: сколько дней осталось до крайнего срока, сколько лет человеку или какова продолжительность проекта.
Поскольку электронные таблицы хранят даты в виде чисел, самый простой ответ — обычное вычитание. Для более сложных задач, например подсчёта полных месяцев или лет, используется функция DATEDIF.
На этом уроке Вы освоите и быстрый способ с вычитанием, и точный способ с DATEDIF.
Вычитание двух дат
Чтобы посчитать количество дней между более ранней датой в A2 и более поздней датой в B2, просто вычтите одну дату из другой.
Результат — количество дней между датами. Если в A2 указано 1 июня, а в B2 — 18 июня, формула =B2-A2 возвращает 17.
Сначала указывайте более позднюю дату, чтобы результат был положительным. При вычитании в обратном порядке получится отрицательное число — это просто означает, что даты указаны в обратном порядке.
=B2-A2Проверьте формат ячейки
Распространённая неожиданность: после вычитания дат ячейка с ответом иногда показывает дату вместо числа, например 1/17/1900.
Это происходит потому, что ячейка унаследовала формат даты. Вычисление выполнено правильно, неверно только отображение. Исправьте это, изменив формат ячейки на Число с нулевым количеством десятичных знаков.
После форматирования в виде числа Вы увидите ожидаемое аккуратное количество дней.
Подсчёт с включением и без включения границ
Обычное вычитание считает промежутки между днями, а не сами дни. С 1 по 18 июня вычитание даёт 17, но всего календарных дней на самом деле 18, если считать обе даты.
Если в Вашей ситуации нужно включить и начальный, и конечный день, прибавьте к результату 1.
Таким образом, формула =B2-A2+1 даёт количество дней с включением обеих границ. Определите, какой вариант нужен в Вашем отчёте.
=B2-A2+1Знакомство с DATEDIF
Для подсчёта полных месяцев или лет обычное вычитание неудобно. Для этого предназначена функция DATEDIF. Она принимает три аргумента: начальную дату, конечную дату и код единицы в кавычках.
Код единицы определяет, что именно подсчитывается:
"D"считает дни"M"считает полные месяцы"Y"считает полные годы
Обратите внимание: DATEDIF — скрытая устаревшая функция; она работает, но не отображается в списке автодополнения Excel.
=DATEDIF(A2,B2,"D")Подсчёт полных месяцев
Используйте единицу "M", чтобы посчитать полные месяцы между двумя датами. Неполные месяцы не учитываются.
Если в A2 указано 15 января, а в B2 — 10 апреля, формула =DATEDIF(A2, B2, "M") возвращает 2, поскольку прошло только два полных месяца: третий месяц ещё не завершился к 10-му числу.
Именно так обычно измеряют срок подписки или длительность договора.
=DATEDIF(A2,B2,"M")Подсчёт полных лет (возраст)
Единица "Y" возвращает количество полных лет, что является правильным способом вычислить возраст.
Если в A2 указана дата рождения, сравнение с сегодняшней датой даёт возраст человека в полных годах. До фактического наступления дня рождения в текущем году функция правильно возвращает меньшее значение.
Это позволяет избежать ошибок округления, которые возникают при делении разницы в днях на 365.
=DATEDIF(A2,TODAY(),"Y")Оставшиеся дни и месяцы
У DATEDIF есть дополнительные коды единиц для разбиения промежутка на части:
"YM"= месяцы, оставшиеся после подсчёта полных лет"MD"= дни, оставшиеся после подсчёта полных месяцев"YD"= дни, оставшиеся после подсчёта полных лет
С их помощью можно представить продолжительность в виде 2 лет, 3 месяцев и 5 дней, объединив три вызова DATEDIF.
=DATEDIF(A2,B2,"YM")Подсчёт только рабочих дней
Обычное вычитание считает каждый календарный день, включая выходные. Чтобы посчитать только рабочие дни, используйте NETWORKDAYS.
Эта функция считает будние дни между двумя датами и позволяет указать список праздников, которые нужно пропустить. Поэтому формула =NETWORKDAYS(A2, B2) возвращает количество дней с понедельника по пятницу, а необязательный третий аргумент указывает диапазон с праздниками.
Это подходящий инструмент для оценки сроков доставки и сроков по SLA.
=NETWORKDAYS(A2,B2)Пример: количество дней просрочки
Предположим, что в A2 указана дата оплаты счёта, и Вы хотите показать, на сколько дней он просрочен относительно сегодняшней даты, но выводить 0, если срок оплаты ещё не наступил.
Вычтите дату оплаты из сегодняшней даты, а затем оберните результат в MAX с аргументом 0, чтобы для ещё не просроченного счёта никогда не отображалось отрицательное число.
Эта единственная формула даёт понятное и корректное количество дней просрочки для отчёта по взысканию задолженности.
=MAX(0,TODAY()-A2)Преобразование количества дней в недели
Получив количество дней, Вы можете преобразовать его в другие единицы. Чтобы представить промежуток в полных неделях, разделите разницу в днях на 7 и округлите вниз с помощью INT.
Формула =INT((B2-A2)/7) показывает, сколько полных недель укладывается между двумя датами. Промежуток в 17 дней превращается в 2 недели.
Тот же принцип работает для любых единиц: разделите количество дней и округлите результат так, как требуется в Вашем отчёте.
=INT((B2-A2)/7)Быстрая проверка
Проверьте свои знания о разнице между датами.
Повторение: подсчёт дней между датами
Вы изучили несколько способов измерять промежутки времени:
=B2-A2даёт разницу в днях (сначала указывайте более позднюю дату); добавьте1, чтобы включить обе границы.- Измените формат ячейки с результатом на Число, если она показывает дату.
DATEDIF(start, end, "D"/"M"/"Y")считает полные дни, месяцы или годы; это удобно для вычисления возраста и срока.NETWORKDAYSсчитает рабочие дни и может пропускать праздники.- Используйте
MAX(0, ...), чтобы избежать отрицательного количества дней просрочки.
Вы завершили курс «Функции даты и времени».
Изучай Excel с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 30
- Уроки
- 120
Часто задаваемые вопросы
Урок «Подсчёт дней между датами» бесплатный?
Да — полный текст урока «Подсчёт дней между датами» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Excel Formulas Academy, подпишись на CoddyKit PRO. Курс Excel Formulas Academy содержит 4 уроков всего.
Чему я научусь в уроке «Подсчёт дней между датами»?
Находите разницу между двумя датами с помощью DATEDIF и вычитания Ты практикуешь Excel Formulas Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Excel Formulas Academy?
Предыдущий опыт не требуется. Excel Formulas Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Подсчёт дней между датами»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Excel Formulas Academy?
Да. Каждый урок Excel Formulas Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- TODAY и NOW для текущих дат
- Разбор дат с помощью YEAR, MONTH, DAY
- Создание дат с помощью DATE и EDATE
- Подсчёт дней между датами