DATEDIF и NETWORKDAYS в Google Sheets: разница дат в днях, месяцах и годах

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

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

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

    Функция DATEDIF в Google Sheets

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

    Давайте разберем ее на части. Функция требует три аргумента:

    =DATEDIF(начальная_дата, конечная_дата, единица)
    • дата начала - дата, используемая в качестве отправной точки. Она должна быть одной из следующих:
      • сама дата в двойных кавычках: "8/13/2020"
      • ссылка на ячейку с датой: A2
      • формула, которая возвращает дату: ДАТА(2020, 8, 13)
      • число, обозначающее определенную дату и интерпретируемое Google Таблицами как дата, например. 44056 представляет собой 13 августа 2020 года .
    • дата окончания - дата, используемая в качестве конечной точки. Она должна иметь тот же формат, что и дата дата начала .
    • блок - используется для указания функции, какую разницу возвращать. Вот полный список единиц, которые вы можете использовать:
      • "D" - (сокращение от дней ) возвращает количество дней между двумя датами.
      • "M" - (месяцы) количество полных месяцев между двумя датами.
      • "Y" - (годы) количество полных лет.
      • "MD" - (дни без учета месяцев) количество дней после вычитания целых месяцев.
      • "YD" - (дни без учета лет) количество дней после вычитания целых лет.
      • "YM" - (месяцы, игнорирующие годы) количество полных месяцев после вычитания полных лет.

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

    Теперь давайте соединим все эти части вместе и посмотрим, как работают формулы DATEDIF в Google Sheets.

    Вычисление дней между двумя датами в Google Sheets

    Пример 1. Подсчитать все дни

    У меня есть небольшая таблица для отслеживания некоторых заказов. Все они были отправлены в первой половине августа -... Дата отгрузки - это будет дата начала моей работы. Также есть приблизительная дата доставки - Срок исполнения .

    Я собираюсь рассчитать дни - "D" - между датами отправки и датами исполнения, чтобы узнать, сколько времени потребуется для доставки товаров. Вот формула, которую я должен использовать:

    =DATEDIF(B2, C2, "D")

    Я ввожу формулу DATEDIF в D2, а затем копирую ее вниз по столбцу, чтобы применить к другим строкам.

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

    =ArrayFormula(DATEDIF(B2:B13, C2:C13, "D"))

    Пример 2. Считать дни, игнорируя месяцы

    Представьте, что между двумя датами прошло несколько месяцев:

    Как подсчитать только дни, как если бы они принадлежали одному месяцу? Правильно: игнорируя полные прошедшие месяцы. DATEDIF вычисляет это автоматически, когда вы используете функцию "MD" единица:

    =DATEDIF(A2, B2, "MD")

    Функция вычитает прошедшие месяцы и подсчитывает оставшиеся дни.

    Пример 3. Считать дни, игнорируя годы

    Другая единица - "YD" - поможет, когда между датами проходит более года:

    =DATEDIF(A2, B2, "YD")

    Формула сначала вычитает годы, а затем рассчитывает оставшиеся дни так, как если бы они относились к одному году.

    Подсчет рабочих дней в Google Sheets

    Есть особый случай, когда в Google Sheets нужно считать только рабочие дни. Формулы DATEDIF здесь не очень помогут. И я думаю, вы согласитесь, что вычитать выходные вручную - не самый элегантный вариант.

    К счастью, в Google Sheets есть пара не очень волшебных заклинаний для этого :)

    Пример 1. Функция NETWORKDAYS

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

    =NETWORKDAYS(начальная_дата, конечная_дата, [праздники])
    • дата начала - дата, используемая в качестве отправной точки. Требуется.

      Примечание. Если эта дата не является праздничной, она считается рабочим днем.

    • дата окончания - дата, используемая в качестве конечной точки. Требуется.

      Примечание. Если эта дата не является праздничной, она считается рабочим днем.

    • праздники - Этот параметр необязателен, если вам нужно указать конкретные праздники. Это должен быть диапазон дат или чисел, представляющих даты.

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

    Итак, столбец B - это дата начала, столбец C - дата окончания. Даты в столбце E - это праздники, которые нужно учитывать. Вот как должна выглядеть формула:

    =NETWORKDAYS(B2, C2, $E$2:$E$4)

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

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

    Примечание. В отличие от DATEDIF в Google Sheets, NETWORKDAYS учитывает начальный_день и конец_дня как рабочие дни, если только они не являются праздниками. Следовательно, D7 возвращает 1 .

    Пример 2. NETWORKDAYS.INTL для Google Sheets

    Если у вас есть собственный график выходных, вам пригодится еще одна функция: NETWORKDAYS.INTL. Она позволяет подсчитывать рабочие дни в Google Sheets на основе лично установленных выходных:

    =NETWORKDAYS.INTL(начальная_дата, конечная_дата, [выходные], [праздники])
    • дата начала - дата, используемая в качестве отправной точки. Требуется.
    • дата окончания - дата, используемая в качестве конечной точки. Требуется.

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

    • выходные - Этот параметр является необязательным. Если он опущен, суббота и воскресенье считаются выходными. Но вы можете изменить это двумя способами:
      • Маски .

        Совет. Этот способ идеально подходит для тех случаев, когда ваши выходные дни разбросаны по всей неделе.

        Маска - это семизначный шаблон из 1 и 0. 1 означает выходные, 0 - рабочий день. Первая цифра в шаблоне всегда понедельник, последняя - воскресенье.

        Например, "1100110" означает, что вы работаете в среду, четверг, пятницу и субботу.

        Примечание. Маска должна быть заключена в двойные кавычки.

      • Номера .

        Используйте однозначные числа (1-7), обозначающие пару установленных выходных дней:

        Номер Выходные
        1 Суббота, воскресенье
        2 Воскресенье, понедельник
        3 Понедельник, вторник
        4 Вторник, среда
        5 Среда, четверг
        6 Четверг, пятница
        7 Пятница, суббота

        Или поработайте с двузначными числами (11-17), обозначающими один день отдыха в течение недели:

        Номер Выходной день
        11 Воскресенье
        12 Понедельник
        13 Вторник
        14 Среда
        15 Четверг
        16 Пятница
        17 Суббота
    • праздники - также является необязательным и используется для указания праздников.

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

    Прежде всего, четко определитесь со своими выходными днями. Пусть это будет Воскресенье и Понедельник Затем решите, как обозначить свои выходные дни.

    Если вы идете с маской, это будет выглядеть следующим образом -... 1000001 :

    =NETWORKDAYS.INTL(B2, C2, "1000001")

    Но поскольку у меня два выходных дня подряд, я могу использовать число из таблиц выше, 2 в моем случае:

    =NETWORKDAYS.INTL(B2, C2, 2)

    Затем просто добавьте последний аргумент - ссылку на праздники в колонке E, и формула готова:

    =NETWORKDAYS.INTL(B2, C2, 2, $E$2:$E$4)

    Google Таблицы и разница дат в месяцах

    Иногда месяцы имеют большее значение, чем дни. Если это так, и вы предпочитаете получать разницу дат в месяцах, а не в днях, позвольте Google Sheets DATEDIF сделать эту работу.

    Пример 1. Количество полных месяцев между двумя датами

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

    =DATEDIF(A2, B2, "M")

    Совет. Не забывайте о функции АРРАУФОРМУЛА, которая поможет вам подсчитать месяцы во всех строках сразу:

    =ARRAYFORMULA(DATEDIF(A2:A13, B2:B13, "M"))

    Пример 2. Количество месяцев, игнорирующих годы

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

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

    =DATEDIF(A2, B2, "YM")

    Вычисление лет между двумя датами в Google Sheets

    Последнее (но не менее важное), что мы хотим вам показать, это то, как Google Sheets DATEDIF вычисляет разницу дат в годах.

    Я собираюсь подсчитать количество лет, в течение которых пары состоят в браке, исходя из даты их свадьбы и сегодняшней даты:

    Как вы, возможно, уже догадались, я буду использовать "Y" для этого:

    =DATEDIF(A2, B2, "Y")

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

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

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