Spis treści
Dzisiejszy wpis na blogu jest o rozgryzaniu różnicy między dwoma datami w Google Sheets. Zobaczysz wiele formuł DATEDIF do liczenia dni, miesięcy i lat, a także dowiesz się, jak NETWORKDAYS jest używany do liczenia tylko dni roboczych, nawet jeśli twoje wakacje są oparte na niestandardowym harmonogramie.
Wielu użytkowników arkuszy kalkulacyjnych uważa, że obsługa dat jest kłopotliwa, a nawet bardzo trudna. Wierzcie lub nie, ale istnieje kilka przydatnych i prostych funkcji do tego celu. DATEDIF i NETWORKDAYS to kilka z nich.
Funkcja DATEDIF w arkuszach Google
Jak to bywa z funkcjami, ich nazwy sugerują działanie. Podobnie jest z DATEDIF. Należy go czytać jako data dyferencjał nie datowany, jeśli i oznacza różnica w datach . stąd DATEDIF w Google Sheets oblicza różnicę dat między dwoma datami.
Rozbijmy to na części, funkcja wymaga trzech argumentów:
=DATEDIF(start_data, end_data, jednostka)- początek_daty - data używana jako punkt wyjścia. Musi to być jedna z poniższych wartości:
- sama data w podwójnych cudzysłowach: "8/13/2020"
- odwołanie do komórki z datą: A2
- formuła zwracająca datę: DATA(2020, 8, 13)
- liczba, która oznacza konkretną datę i która może być interpretowana jako data przez Google Sheets, np. 44056 przedstawia 13 sierpnia 2020 r. .
- koniec_daty - data używana jako punkt końcowy. Musi być tego samego formatu co początek_daty .
- jednostka - jest używany, aby powiedzieć funkcji, jaką różnicę zwrócić. Oto pełna lista jednostek, których możesz użyć:
- "D" - (skrót od dni ) zwraca liczbę dni pomiędzy dwoma datami.
- "M" - (miesiące) liczba pełnych miesięcy pomiędzy dwoma datami.
- "Y" - (lata) liczba pełnych lat.
- "MD" - (dni pomijając miesiące) liczba dni po odjęciu całych miesięcy.
- "YD" - (dni pomijając lata) liczba dni po odjęciu całych lat.
- "YM" - (miesiące pomijając lata) liczba pełnych miesięcy po odjęciu pełnych lat.
Uwaga. Wszystkie jednostki muszą być umieszczane w formułach w taki sam sposób, w jaki pojawiają się powyżej - w cudzysłowie.
Teraz poskładajmy wszystkie te części razem i zobaczmy, jak działają formuły DATEDIF w Google Sheets.
Obliczanie dni pomiędzy dwoma datami w Arkuszach Google
Przykład 1. Policz wszystkie dni
Mam małą tabelkę do śledzenia niektórych zamówień, wszystkie zostały wysłane w pierwszej połowie sierpnia -. Data wysyłki - To będzie moja data rozpoczęcia. Jest też przybliżona data dostawy - Termin płatności .
Będę obliczał dni -. "D" - między datami wysyłki i datami wymagalności, aby zobaczyć, jak długo trwa dotarcie przedmiotów. Oto wzór, którego powinienem użyć:
=DATEDIF(B2, C2, "D")
Wprowadzam formułę DATEDIF do D2, a następnie kopiuję ją w dół kolumny, aby zastosować ją do innych wierszy.
Wskazówka. zawsze możesz obliczyć całą kolumnę jednocześnie za pomocą jednej formuły przy użyciu ARRAYFORMULA:
=ArrayFormula(DATEDIF(B2:B13, C2:C13, "D"))
Przykład 2. Liczenie dni z pominięciem miesięcy
Wyobraź sobie, że między dwiema datami jest kilka miesięcy:
W jaki sposób można liczyć tylko dni tak, jakby należały do tego samego miesiąca? To prawda: ignorując pełne miesiące, które minęły. DATEDIF oblicza to automatycznie, gdy używasz "MD" jednostkę:
=DATEDIF(A2, B2, "MD")
Funkcja odejmuje upływające miesiące i liczy pozostałe dni.
Przykład 3. Liczenie dni z pominięciem lat
Inna jednostka - "YD" - będzie pomagać, gdy daty mają więcej niż rok między sobą:
=DATEDIF(A2, B2, "YD")
Formuła najpierw odejmie lata, a następnie obliczy pozostałe dni tak, jakby należały do tego samego roku.
Liczenie dni roboczych w arkuszach Google
Istnieje specjalny przypadek, gdy musisz liczyć tylko dni robocze w Google Sheets. Formuły DATEDIF nie będą tutaj zbyt pomocne. I wierzę, że zgodzisz się, że ręczne odejmowanie weekendów nie jest najbardziej elegancką opcją.
Na szczęście Google Sheets ma na to kilka nie tak magicznych zaklęć :)
Przykład 1. Funkcja NETWORKDAYS
Pierwsza z nich nosi nazwę NETWORKDAYS. Funkcja ta oblicza liczbę dni roboczych pomiędzy dwoma datami z wyłączeniem weekendów (sobota i niedziela), a nawet świąt, jeśli to konieczne:
=NETWORKDAYS(start_data, end_data, [holidays])- początek_daty - data używana jako punkt wyjścia. Wymagane.
Uwaga. Jeśli ta data nie jest świętem, jest liczona jako dzień roboczy.
- koniec_daty - data używana jako punkt końcowy. Wymagane.
Uwaga. Jeśli ta data nie jest świętem, jest liczona jako dzień roboczy.
- święta - ten jest opcjonalny, gdy trzeba wskazać konkretne święta. Musi to być zakres dat lub liczby reprezentujące daty.
Aby zilustrować, jak to działa, dodam listę świąt, które mają miejsce między datami wysyłki i terminami wymagalności:
Tak więc kolumna B to moja data początkowa, kolumny C - data końcowa. Daty w kolumnie E to święta, które należy wziąć pod uwagę. Oto jak powinna wyglądać formuła:
=NETWORKDAYS(B2, C2, $E$2:$E$4)
Wskazówka. Jeśli zamierzasz skopiować formułę do innych komórek, użyj bezwzględnych odniesień do komórek na wakacje, aby uniknąć błędów lub nieprawidłowych wyników. Lub rozważ zbudowanie formuły tablicowej zamiast tego.
Czy zauważyłeś, jak zmniejszyła się liczba dni w porównaniu do formuł DATEDIF? Ponieważ teraz funkcja automatycznie odejmuje wszystkie soboty, niedziele i dwa święta, które mają miejsce w piątek i poniedziałek.
Uwaga: w przeciwieństwie do DATEDIF w Google Sheets, NETWORKDAYS liczy się początek_dzień oraz koniec_dni jako dni robocze, chyba że są to dni wolne od pracy. Stąd D7 zwraca 1 .
Przykład 2. NETWORKDAYS.INTL dla Google Sheets
Jeśli masz niestandardowy harmonogram weekendów, skorzystasz z innej funkcji: NETWORKDAYS.INTL. Pozwala ona liczyć dni robocze w Arkuszach Google na podstawie osobiście ustawionych weekendów:
=NETWORKDAYS.INTL(start_data, end_data, [weekend], [święta])- początek_daty - data używana jako punkt wyjścia. Wymagane.
- koniec_daty - data używana jako punkt końcowy. Wymagane.
Uwaga. NETWORKDAYS.INTL w Google Sheets również się liczy. początek_dzień oraz koniec_dni jako dni robocze, chyba że są to dni wolne od pracy.
- weekend - ten jest opcjonalny. jeśli pominięty, sobota i niedziela są uważane za weekendy. ale możesz to zmienić używając dwóch sposobów:
- Maski .
Wskazówka. ten sposób jest idealny, gdy Twoje dni wolne są rozrzucone po całym tygodniu.
Maska to siedmiocyfrowy wzór złożony z cyfr 1 i 0. 1 oznacza weekend, 0 - dzień roboczy. Pierwsza cyfra we wzorze to zawsze poniedziałek, ostatnia - niedziela.
Na przykład, "1100110" oznacza, że pracujesz w środę, czwartek, piątek i sobotę.
Uwaga. Maska musi być ujęta w podwójne cudzysłowy.
- Numery .
Użyj jednocyfrowych liczb (1-7), które oznaczają parę ustalonych weekendów:
Numer Weekend 1 Sobota, niedziela 2 Niedziela, poniedziałek 3 Poniedziałek, wtorek 4 Wtorek, środa 5 Środa, czwartek 6 Czwartek, piątek 7 Piątek, sobota Można też pracować z liczbami dwucyfrowymi (11-17), które oznaczają jeden dzień do odpoczynku w ciągu tygodnia:
Numer Dzień powszedni 11 Niedziela 12 Poniedziałek 13 Wtorek 14 Środa 15 Czwartek 16 Piątek 17 Sobota
- Maski .
- święta - jest również opcjonalne i służy do określenia świąt.
Funkcja ta może wydawać się skomplikowana ze względu na te wszystkie liczby, ale zachęcam do spróbowania.
Po pierwsze, po prostu zrozumienie swoich dni wolnych.Niech to będzie Niedziela oraz Poniedziałek Następnie zdecyduj się na sposób oznaczenia swoich weekendów.
Jeśli pójdziecie z maską, to będzie tak -. 1000001 :
=NETWORKDAYS.INTL(B2, C2, "1000001")
Ale ponieważ mam dwa dni weekendowe z rzędu, mogę użyć liczby z powyższych tabel, 2 w moim przypadku:
=NETWORKDAYS.INTL(B2, C2, 2)
Następnie wystarczy dodać ostatni argument - odwołanie do wakacji w kolumnie E i formuła jest gotowa:
=NETWORKDAYS.INTL(B2, C2, 2, $E$2:$E$4)
Google Sheets i różnica dat w miesiącach
Czasami miesiące mają większe znaczenie niż dni. Jeśli jest to prawdą dla Ciebie i wolisz uzyskać różnicę daty w miesiącach, a nie dniach, pozwól Arkuszom Google DATEDIF wykonać zadanie.
Przykład 1. Liczba pełnych miesięcy pomiędzy dwoma datami
Wiertło jest takie samo: początek_daty idzie najpierw, a następnie koniec_daty oraz "M" - który stoi miesiącami - jako ostateczny argument:
=DATEDIF(A2, B2, "M")
Wskazówka. nie zapomnij o funkcji ARRAUFORMULA, która może pomóc w liczeniu miesięcy na wszystkich wierszach jednocześnie:
=ARRAYFORMULA(DATEDIF(A2:A13, B2:B13, "M"))
Przykład 2. Liczba miesięcy pomijając lata
Być może nie trzeba liczyć miesięcy przez wszystkie lata pomiędzy datą początkową i końcową, a DATEDIF pozwala to zrobić.
Wystarczy użyć "YM" jednostka, a formuła najpierw odejmie całe lata, a następnie policzy liczbę miesięcy pomiędzy datami:
=DATEDIF(A2, B2, "YM")
Obliczanie lat pomiędzy dwoma datami w Arkuszach Google
Ostatnią (ale nie najmniej ważną) rzeczą do pokazania jest to, jak Google Sheets DATEDIF oblicza różnicę daty w latach.
Obliczę liczbę lat, przez które pary są w związku małżeńskim na podstawie daty ślubu i dzisiejszej daty:
Jak już pewnie się domyślasz, będę używał "Y" jednostkę do tego przeznaczoną:
=DATEDIF(A2, B2, "Y")
Wszystkie te formuły DATEDIF są pierwszymi do wypróbowania, jeśli chodzi o obliczanie dni, miesięcy i lat między dwiema datami w Google Sheets.
Jeśli Twój przypadek nie może być rozwiązany przez te lub masz jakieś pytania, zachęcam do podzielenia się nimi w sekcji komentarzy poniżej.