Функция Excel DATEDIF для получения разницы между двумя датами

  • Поделись Этим
Michael Brown

Оглавление

В этом учебнике вы найдете простое объяснение функции Excel DATEDIF и несколько примеров формул, демонстрирующих, как сравнивать даты и вычислять разницу в днях, неделях, месяцах или годах.

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

В этом уроке мы сосредоточимся на вычислении разницы дат в Excel, и вы узнаете различные способы подсчета количества дней, недель, месяцев и лет между двумя датами.

    Легко найти разницу между двумя датами в Excel

    Получите результат в виде готовой формулы за годы, месяцы, недели или дни

    Читать далее

    Добавляйте и вычитайте даты в пару кликов

    Делегируйте построение формул даты и времени эксперту

    Читать далее

    Вычисление возраста в Excel на лету

    И получить индивидуально подобранную формулу

    Читать далее

    Функция Excel DATEDIF - получение разницы дат

    Как следует из названия, функция DATEDIF предназначена для вычисления разницы между двумя датами.

    DATEDIF - одна из немногих недокументированных функций в Excel, и поскольку она "скрыта", вы не найдете ее на странице Формула Поэтому важно знать полный синтаксис функции DATEDIF в Excel, чтобы уметь использовать ее в формулах.

    Функция Excel DATEDIF - синтаксис

    Синтаксис функции Excel DATEDIF следующий:

    DATEDIF(начальная_дата, конечная_дата, единица)

    Требуются все три аргумента:

    Начальная_дата - начальная дата периода, который вы хотите рассчитать.

    Конечная_дата - дата окончания периода.

    Единица - единица времени, используемая при вычислении разницы между двумя датами. Задавая различные единицы, вы можете заставить функцию DATEDIF возвращать разницу дат в днях, месяцах или годах. Всего доступно 6 единиц, которые описаны в следующей таблице.

    Единица Значение Пояснение
    Y Годы Количество полных лет между начальной и конечной датами.
    M Месяцы Количество полных месяцев между датами.
    D Дни Количество дней между датой начала и датой окончания.
    MD Дни, исключая годы и месяцы Разница в дате в днях, без учета месяцев и лет.
    YD Дни без учета лет Разница в датах в днях, без учета лет.
    YM Месяцы, исключая дни и годы Разница дат в месяцах, без учета дней и лет.

    Формула Excel DATEDIF

    Чтобы получить разницу между двумя датами в Excel, основная задача заключается в предоставлении начальной и конечной дат функции DATEDIF. Это можно сделать различными способами, при условии, что Excel может понять и правильно интерпретировать предоставленные даты.

    Ссылки на клетки

    Самый простой способ создать формулу DATEDIF в Excel - это ввести две действительные даты в отдельные ячейки и сослаться на эти ячейки. Например, следующая формула подсчитывает количество дней между датами в ячейках A1 и B1:

    =DATEDIF(A1, B1, "d")

    Текстовые строки

    Excel понимает даты во многих текстовых форматах, таких как "1-Jan-2023", "1/1/2023", "1 января 2023" и т.д. Даты как текстовые строки, заключенные в кавычки, могут быть введены непосредственно в аргументы формулы. Например, так можно вычислить количество месяцев между указанными датами:

    =DATEDIF("1/1/2023", "12/31/2025", "m")

    Серийные номера

    Поскольку Microsoft Excel хранит каждую дату как порядковый номер, начиная с 1 января 1900 года, вы используете числа, соответствующие датам. Хотя этот метод поддерживается, он не является надежным, поскольку нумерация дат в разных компьютерных системах различается. В системе дат 1900 года вы можете использовать приведенную ниже формулу, чтобы найти количество лет между двумя датами, 1-января-2023 и 31-декабря-2025:

    =DATEDIF(44927, 46022, "y")

    Результаты других функций

    Чтобы узнать, сколько дней осталось между сегодняшним днем и 20 мая 2025 года, можно воспользоваться следующей формулой.

    =DATEDIF(TODAY(), "5/20/2025", "d")

    Примечание. В ваших формулах конечная дата всегда должна быть больше начальной, иначе функция Excel DATEDIF возвращает ошибку #NUM!

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

    Как получить количество дней между двумя датами в Excel

    Если вы внимательно следили за аргументами DATEDIF, то заметили, что существует 3 различных единицы для подсчета дней между датами. Какую из них использовать, зависит от ваших потребностей.

    Пример 1. Формула Excel DATEDIF для расчета разницы дат в днях

    Предположим, у вас есть начальная дата в ячейке A2 и конечная дата в ячейке B2, и вы хотите, чтобы Excel вернул разницу в днях. Простая формула DATEDIF работает отлично:

    =DATEDIF(A2, B2, "d")

    При условии, что значение в аргументе start_date меньше, чем в end_date. В случае если начальная дата больше конечной, функция Excel DATEDIF возвращает ошибку #NUM, как в строке 5:

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

    =B2-A2

    Подробную информацию и примеры формул см. в разделе Как вычитать даты в Excel.

    Пример 2. Подсчет дней в Excel с игнорированием лет

    Предположим, у вас есть два списка дат, относящихся к разным годам, и вы хотите подсчитать количество дней между датами, как если бы они относились к одному году. Для этого используйте формулу DATEDIF с единицей измерения "YD":

    =DATEDIF(A2, B2, "yd")

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

    =DATEDIF(A2, B2, "md")

    Приведенный ниже скриншот демонстрирует результаты, а сравнение его со скриншотом выше поможет лучше понять разницу.

    Совет. Чтобы получить количество рабочие дни между двумя датами, используйте функцию NETWORKDAYS или NETWORKDAYS.INTL.

    Как рассчитать разницу дат в неделях

    Как вы, вероятно, заметили, функция Excel DATEDIF не имеет специального блока для вычисления разницы дат в неделях. Однако существует простой обходной путь.

    Чтобы узнать, сколько недель между двумя датами, можно использовать функцию DATEDIF с единицей "D", чтобы вернуть разницу в днях, а затем разделить результат на 7.

    Чтобы получить количество полные недели между датами, оберните вашу формулу DATEDIF в функцию ROUNDDOWN, которая всегда округляет число в сторону нуля:

    =ROUNDDOWN((DATEDIF(A2, B2, "d") / 7), 0)

    Где A2 - дата начала, а B2 - дата окончания периода, который вы рассчитываете.

    Как вычислить количество месяцев между двумя датами в Excel

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

    Пример 1. Вычислить полные месяцы между двумя датами (DATEDIF)

    Для подсчета количества целых месяцев между датами используется функция DATEDIF с единицей "M". Например, следующая формула сравнивает даты в A2 (начальная дата) и B2 (конечная дата) и возвращает разницу в месяцах:

    =DATEDIF(A2, B2, "m")

    Примечание. Чтобы формула DATEDIF правильно вычисляла месяцы, конечная дата всегда должна быть больше начальной даты; в противном случае формула возвращает ошибку #NUM.

    Чтобы избежать подобных ошибок, можно заставить Excel всегда воспринимать более старую дату как начальную, а более позднюю - как конечную. Для этого добавьте простой логический тест:

    =IF(B2>A2, DATEDIF(A2,B2, "m"), DATEDIF(B2,A2, "m"))

    Пример 2. Получить количество месяцев между двумя датами, игнорируя годы (DATEDIF)

    Чтобы подсчитать количество месяцев между датами, как если бы они относились к одному году, введите "YM" в аргументе единицы измерения:

    =DATEDIF(A2, B2, "ym")

    Как вы видите, эта формула также возвращает ошибку в строке 6, где дата окончания меньше даты начала. Если ваш набор данных может содержать такие даты, вы найдете решение в следующих примерах.

    Пример 3. Вычисление месяцев между двумя датами (функция MONTH)

    Альтернативным способом подсчета количества месяцев между двумя датами в Excel является использование функции MONTH, а точнее комбинации функций MONTH и YEAR:

    =(ГОД(B2) - ГОД(A2))*12 + МЕСЯЦ(B2) - МЕСЯЦ(A2)

    Конечно, эта формула не так прозрачна, как DATEDIF, и требуется время, чтобы разобраться с логикой. Но в отличие от функции DATEDIF, она может сравнивать любые две даты и возвращать разницу в месяцах в виде положительного или отрицательного значения:

    Обратите внимание, что формула ГОД/МЕСЯЦ не имеет проблем с вычислением месяцев в строке 6, где начальная дата является более поздней, чем конечная дата - сценарий, в котором аналогичная формула DATEDIF не работает.

    Примечание. Результаты, возвращаемые формулами DATEDIF и YEAR/MONTH, не всегда идентичны, поскольку они работают на основе разных принципов. Функция Excel DATEDIF возвращает количество дней в году. полных календарных месяцев между датами, в то время как формула ГОД/МЕСЯЦ оперирует числами месяцев.

    Например, в строке 7 на скриншоте выше формула DATEDIF возвращает 0, потому что полный календарный месяц между датами еще не прошел, а формула YEAR/MONTH возвращает 1, потому что даты относятся к разным месяцам.

    Пример 4. Подсчет месяцев между двумя датами, игнорируя годы (функция MONTH)

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

    =МЕСЯЦ(B2) - МЕСЯЦ(A2)

    Эта формула работает аналогично формуле Excel DATEDIF с единицей измерения "YM", как показано на следующем снимке экрана:

    Однако результаты, возвращаемые двумя формулами, отличаются на пару строк:

    • Строка 4: конечная дата меньше начальной, поэтому DATEDIF возвращает ошибку, а MONTH-MONTH дает отрицательное значение.
    • Строка 6: даты относятся к разным месяцам, но фактическая разница в датах составляет всего один день. DATEDIF возвращает 0, поскольку вычисляет целые месяцы между двумя датами. MONTH-MONTH возвращает 1, поскольку вычитает номера месяцев друг из друга, игнорируя дни и годы.

    Как вычислить годы между двумя датами в Excel

    Если вы следовали предыдущим примерам, где мы вычисляли месяцы и дни между двумя датами, то вы легко сможете вывести формулу для вычисления лет в Excel. Следующие примеры помогут вам проверить, правильно ли вы вывели формулу :)

    Пример 1. Вычисление полных лет между двумя датами (функция DATEDIF)

    Чтобы узнать количество полных календарных лет между двумя датами, используйте старый добрый DATEDIF с единицей измерения "Y":

    =DATEDIF(A2,B2, "y")

    Обратите внимание, что формула DATEDIF возвращает 0 в строке 6, хотя даты относятся к разным годам. Это потому, что количество полных календарных лет между начальной и конечной датами равно нулю. И я думаю, вы не удивитесь, увидев ошибку #NUM! в строке 7, где начальная дата является более поздней, чем конечная.

    Пример 2. Вычисление лет между двумя датами (функция ГОД)

    Альтернативным способом вычисления лет в Excel является использование функции ГОД. Аналогично формуле МЕСЯЦ, вы извлекаете год из каждой даты, а затем вычитаете годы друг из друга:

    = ГОД(B2) - ГОД(A2)

    На следующем снимке экрана вы можете сравнить результаты, возвращаемые функциями DATEDIF и YEAR:

    В большинстве случаев результаты идентичны, за исключением:

    • Функция DATEDIF вычисляет полные календарные годы, в то время как формула YEAR просто вычитает один год из другого. Строка 6 иллюстрирует разницу.
    • Формула DATEDIF возвращает ошибку, если начальная дата больше конечной, а функция YEAR возвращает отрицательное значение, как в строке 7.

    Как получить разницу дат в днях, месяцах и годах

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

    =DATEDIF(A2, B2, "y") &" годы, "&DATEDIF(A2, B2, "ym") &" месяцы, " &DATEDIF(A2, B2, "md") &" дни"

    Если вы предпочитаете не отображать нулевые значения, вы можете обернуть каждый DATEDIF в функцию IF следующим образом:

    =IF(DATEDIF(A2,B2, "y")=0, "", DATEDIF(A2,B2, "y") & " лет ") & IF(DATEDIF(A2,B2, "ym")=0,"", DATEDIF(A2,B2, "ym") & " месяцев ") & IF(DATEDIF(A2, B2, "md")=0, "", DATEDIF(A2, B2, "md") & " дней "

    Формула отображает только ненулевые элементы, как показано на следующем снимке экрана:

    О других способах получения разницы между датами в днях см. в разделе Как рассчитать дни с момента или до момента в Excel.

    Формулы DATEDIF для расчета возраста в Excel

    Фактически, вычисление возраста человека по дате рождения - это частный случай вычисления разницы дат в Excel, где конечная дата - это сегодняшняя дата. Итак, вы используете обычную формулу DATEDIF с единицей "Y", которая возвращает количество лет между датами, и вводите функцию TODAY() в аргумент end_date:

    =DATEDIF(A2, TODAY(), "y")

    Где A2 - дата рождения.

    Приведенная выше формула вычисляет количество полных лет. Если вы хотите получить точный возраст, включая годы, месяцы и дни, то объедините три функции DATEDIF, как мы сделали в предыдущем примере:

    =DATEDIF(B2,TODAY(), "y") & " Годы, " & DATEDIF(B2,TODAY(), "ym") & " Месяцы, " & DATEDIF(B2,TODAY(), "md") & " Дни"

    И вы получите следующий результат:

    Чтобы узнать другие способы преобразования даты рождения в возраст, ознакомьтесь со статьей Как рассчитать возраст по дате рождения.

    Date & Time Wizard - простой способ построения формул разницы дат в Excel

    Как было показано в первой части этого руководства, функция DATEDIF в Excel является довольно универсальной и подходит для множества различных применений. Однако у нее есть один существенный недостаток - она недокументирована Microsoft, то есть вы не найдете DATEDIF в списке функций и не увидите всплывающих подсказок аргументов, когда начнете вводить формулу в ячейку. Чтобы иметь возможность использовать функцию DATEDIF вв своих рабочих листах, вам придется запомнить его синтаксис и ввести все аргументы вручную, что может отнять много времени и привести к ошибкам, особенно для новичков.

    Ultimate Suite для Excel радикально меняет ситуацию, поскольку теперь он предоставляет Мастер настройки даты и времени с помощью которого можно в мгновение ока превратить практически любую формулу разницы дат. Вот как:

    1. Выберите ячейку, в которую нужно вставить формулу.
    2. Перейти к Инструменты Ablebits вкладка> Дата и время группу, и нажмите кнопку Мастер настройки даты и времени кнопка:

  • Сайт Мастер настройки даты и времени появляется диалоговое окно, вы переключаетесь на Разница вкладку и введите данные для аргументов формулы:
    • Нажмите в Дата 1 (или нажмите кнопку Свернуть диалог справа от поля) и выберите ячейку, содержащую первую дату.
    • Нажмите в Дата 2 и выберите ячейку со второй датой.
    • Выберите нужную единицу или комбинацию единиц из списка Разница в При этом мастер позволяет просмотреть результат в ячейке и формулу в ячейке.
    • Если вас устраивает предварительный просмотр, нажмите кнопку Вставить формулу кнопку, в противном случае попробуйте разные устройства.

    Например, вот как вы можете получить количество дней между двумя датами в Excel:

    После того как формула вставлена в выделенную ячейку, вы можете скопировать ее в другие ячейки, как обычно, дважды щелкнув мышью или перетащив ручку заливки. Результат будет выглядеть примерно так:

    Чтобы представить результаты в наиболее подходящем виде, можно воспользоваться еще несколькими дополнительными опциями:

    • Исключить годы и/или исключить месяцы из расчетов.
    • Показывать или не показывать текстовые метки например, дней , месяцев , недели и лет .
    • Показывать или не показывать ноль единиц .
    • Вернуть результаты как отрицательные значения если Дата 1 (дата начала) больше, чем Дата 2 (дата окончания).

    В качестве примера, давайте получим разницу между двумя датами в годах, месяцах, неделях и днях, игнорируя нулевые единицы:

    Преимущества использования мастера формул даты и времени

    Помимо скорости и простоты, мастер Date & Time Wizard обеспечивает еще несколько преимуществ:

    • В отличие от обычной формулы DATEDIF, расширенная формула, созданная мастером, не заботится о том, какая из двух дат меньше, а какая больше. Разница всегда вычисляется идеально, даже если Дата 1 (начальная дата) больше Даты 2 (конечной даты).
    • Мастер поддерживает все возможные единицы измерения (дни, недели, месяцы и годы) и позволяет выбирать из 11 различных комбинаций этих единиц.
    • Формулы, которые мастер создает для вас, являются обычными формулами Excel, поэтому вы можете редактировать, копировать или перемещать их как обычно. Вы также можете поделиться своими рабочими листами с другими людьми, и все формулы останутся на месте, даже если у кого-то нет Ultimate Suite в его Excel.

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

    Доступные загрузки

    Ultimate Suite 14-дневная полнофункциональная версия (файл .exe)

    Майкл Браун — увлеченный технологический энтузиаст, стремящийся упростить сложные процессы с помощью программных инструментов. Имея более чем десятилетний опыт работы в технологической отрасли, он отточил свои навыки в Microsoft Excel и Outlook, а также в Google Sheets и Docs. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.