DATEDIF та NETWORKDAY в Google Sheets: різниця дат у днях, місяцях та роках

  • Поділитися Цим
Michael Brown

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

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

    Функція DATEDIF в Google Sheets

    Як це буває з функціями, їх назви підказують дію. Те ж саме можна сказати і про DATEDIF. Її слід читати як дата dif а не датований, якщо і розшифровується як різниця в датах Таким чином, функція DATEDIF в Google Sheets обчислює різницю між двома датами.

    Розберемо по пунктах. Функція вимагає три аргументи:

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

    Примітка: всі одиниці виміру у формулах слід подавати так само, як вони наведені вище - у подвійних лапках.

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

    Обчислення днів між двома датами в Google Таблицях

    Приклад 1. Порахувати всі дні

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

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

    =DATEDIF(B2, C2, "D")

    Я вводжу формулу DATEDIF в D2, а потім копіюю її вниз по стовпчику, щоб застосувати до інших рядків.

    Порада. Ви завжди можете розрахувати відразу весь стовпець однією формулою за допомогою АРМАЙФОРМУЛА:

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

    Приклад 2. Підрахунок днів без урахування місяців

    Уявіть собі, що між двома датами кілька місяців:

    Як порахувати тільки дні так, ніби вони належать до одного місяця? Правильно: ігноруючи повні місяці, що минули. DATEDIF обчислює це автоматично, коли ви використовуєте функцію "MD" підрозділ:

    =DATEDIF(A2, B2, "MD")

    Функція віднімає минулі місяці і рахує дні, що залишилися.

    Приклад 3. Підрахунок днів без урахування років

    Інша одиниця - "YD" - допоможе, коли між датами більше року:

    =DATEDIF(A2, B2, "YD")

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

    Підрахунок робочих днів в Google Таблицях

    Є особливий випадок, коли в Google Sheets потрібно порахувати тільки робочі дні. Формули DATEDIF тут не дуже допоможуть. І, думаю, ви погодитеся, що віднімати вихідні вручну - не найелегантніший варіант.

    На щастя, в Google Таблицях є пара не дуже магічних заклинань для цього :)

    Приклад 1. функція NETWORKDAYS

    Перша з них називається СЕТЬ РОБОЧИХ ДНІВ. Ця функція підраховує кількість робочих днів між двома датами, виключаючи вихідні (суботу та неділю) і навіть святкові дні, якщо це необхідно:

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

      Примітка: якщо ця дата не є святковим днем, то вона вважається робочим днем.

    • дата_закінчення - дата, яка використовується як кінцева точка. Обов'язково.

      Примітка: якщо ця дата не є святковим днем, то вона вважається робочим днем.

    • канікули - це необов'язкова опція, якщо вам потрібно вказати конкретні свята. Це повинен бути діапазон дат або чисел, що представляють дати.

    Щоб проілюструвати, як це працює, я додам перелік святкових днів, які припадають на проміжок між датами відвантаження та сплати:

    Отже, колонка В - це моя дата початку, колонка С - дата закінчення. Дати в колонці Е - це святкові дні, які потрібно враховувати. Ось як повинна виглядати формула:

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

    Порада: Якщо ви збираєтеся скопіювати формулу в інші клітинки, використовуйте абсолютні посилання на святкові клітинки, щоб уникнути помилок або неправильних результатів. Або розгляньте можливість створення формули масиву замість цього.

    Ви помітили, як зменшилася кількість днів у порівнянні з формулами DATEDIF? Адже тепер функція автоматично віднімає всі суботи, неділі та два святкові дні, які припадають на п'ятницю та понеділок.

    Примітка: на відміну від DATEDIF в Google Sheets, NETWORKDAYS рахує start_day і кінець_дня як робочі дні, якщо вони не є святковими. Таким чином, D7 повертається 1 .

    Приклад 2. NETWORKDAYS.INTL для Google Sheets

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

    =NETWORKDAYS.INTL(дата_початку, дата_закінчення, [вихідні], [свята])
    • дата_початку - дата, яка використовується як точка відліку. Обов'язково.
    • дата_закінчення - дата, яка використовується як кінцева точка. Обов'язково.

      Примітка. NETWORKDAYS.INTL в Google Sheets також рахується start_day і кінець_дня як робочі дні, якщо вони не є святковими.

    • вихідні - ця опція є необов'язковою. якщо її не заповнити, то субота та неділя вважаються вихідними днями. Але ви можете змінити це двома способами:
      • Маски .

        Порада. Цей спосіб ідеально підходить для тих, у кого вихідні дні розкидані по всьому тижню.

        Маска являє собою семизначний шаблон з 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)

    Потім просто додаємо останній аргумент - посилання на свята в колонці Е, і формула готова:

    =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 Таблицях

    Останнє (але не менш важливе), що ми покажемо вам, як Google Sheets DATEDIF обчислює різницю в датах у роках.

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

    Як ви вже здогадалися, я буду використовувати "Y" для цього:

    =DATEDIF(A2, B2, "Y")

    Всі ці формули DATEDIF є першими, які слід спробувати, коли мова йде про обчислення днів, місяців і років між двома датами в Google Таблицях.

    Якщо Ваш випадок не може бути вирішений за допомогою цих рекомендацій або якщо у Вас виникли питання, я закликаю Вас поділитися ними з нами в розділі коментарів нижче.

    Майкл Браун — відданий ентузіаст технологій із пристрастю до спрощення складних процесів за допомогою програмних засобів. Маючи понад десятирічний досвід роботи в технологічній індустрії, він відточив свої навички роботи з Microsoft Excel і Outlook, а також із Google Таблицями та Документами. Блог Майкла присвячений тому, щоб поділитися своїми знаннями та досвідом з іншими, надаючи прості поради та навчальні посібники для підвищення продуктивності та ефективності. Незалежно від того, чи є ви досвідченим професіоналом чи початківцем, блог Майкла пропонує цінну інформацію та практичні поради щодо отримання максимальної користі від цих основних програмних інструментів.