Funkcja DATEDIF programu Excel, aby uzyskać różnicę między dwiema datami

  • Udostępnij To
Michael Brown

W tym samouczku znajdziesz proste wyjaśnienie funkcji Excel DATEDIF i kilka przykładów formuł, które pokazują, jak porównać daty i obliczyć różnicę w dniach, tygodniach, miesiącach lub latach.

W ciągu ostatnich kilku tygodni zbadaliśmy niemal każdy aspekt pracy z datami i czasem w Excelu. Jeśli śledziłeś naszą serię blogów, wiesz już, jak wstawiać i formatować daty w arkuszach, jak obliczać dni tygodnia, tygodnie, miesiące i lata, a także dodawać i odejmować daty.

W tym tutorialu skupimy się na obliczaniu różnicy dat w Excelu i poznasz różne sposoby liczenia liczby dni, tygodni, miesięcy i lat między dwiema datami.

    Łatwo znaleźć różnicę między dwoma datami w Excelu

    Uzyskaj wynik w postaci gotowej formuły w latach, miesiącach, tygodniach lub dniach

    Więcej

    Dodawanie i odejmowanie dat za pomocą kilku kliknięć

    Deleguj datę & budowanie formuł czasowych do eksperta

    Więcej

    Obliczanie wieku w programie Excel w locie

    I otrzymać formułę dostosowaną do potrzeb klienta

    Więcej

    Funkcja DATEDIF w programie Excel - uzyskanie różnicy dat

    Jak sama nazwa wskazuje, funkcja DATEDIF służy do obliczania różnicy pomiędzy dwoma datami.

    DATEDIF jest jedną z bardzo niewielu nieudokumentowanych funkcji w Excelu, a ponieważ jest "ukryta" nie znajdziesz jej na stronie Formuła zakładka, ani nie dostaniesz podpowiedzi, jakie argumenty należy wpisać, gdy zaczniesz wpisywać nazwę funkcji w pasku formuły. Dlatego tak ważna jest znajomość pełnej składni Excel DATEDIF, aby móc ją wykorzystać w swoich formułach.

    Funkcja DATEDIF w programie Excel - składnia

    Składnia funkcji DATEDIF programu Excel jest następująca:

    DATEDIF(start_data, end_data, jednostka)

    Wymagane są wszystkie trzy argumenty:

    Początek_daty - data początkowa okresu, który chcesz obliczyć.

    Koniec_daty - data zakończenia okresu.

    Jednostka - jednostka czasu, która zostanie użyta do obliczenia różnicy pomiędzy dwoma datami. Podając różne jednostki, można sprawić, że funkcja DATEDIF zwróci różnicę dat w dniach, miesiącach lub latach. Ogólnie dostępnych jest 6 jednostek, które są opisane w poniższej tabeli.

    Jednostka Znaczenie Wyjaśnienie
    Y Lata Liczba pełnych lat pomiędzy datą początkową i końcową.
    M Miesiące Liczba pełnych miesięcy pomiędzy datami.
    D Dni Liczba dni pomiędzy datą początkową a datą końcową.
    MD Dni z wyłączeniem lat i miesięcy Różnica dat w dniach, pomijając miesiące i lata.
    YD Dni z wyłączeniem lat Różnica dat w dniach, pomijając lata.
    YM Miesiące z wyłączeniem dni i lat Różnica dat w miesiącach, ignorując dni i lata.

    Formuła DATEDIF w programie Excel

    Aby uzyskać różnicę między dwoma datami w Excelu, twoim głównym zadaniem jest dostarczenie daty początkowej i końcowej do funkcji DATEDIF. Można to zrobić na różne sposoby, pod warunkiem, że Excel może zrozumieć i poprawnie zinterpretować dostarczone daty.

    Odniesienia do komórek

    Najprostszym sposobem utworzenia formuły DATEDIF w programie Excel jest wprowadzenie dwóch ważnych dat w oddzielnych komórkach i odwołanie się do tych komórek. Na przykład poniższa formuła liczy liczbę dni pomiędzy datami w komórkach A1 i B1:

    =DATEDIF(A1, B1, "d")

    Ciągi tekstowe

    Excel rozumie daty w wielu formatach tekstowych, takich jak "1-Jan-2023", "1/1/2023", "1 stycznia 2023" itp. Daty jako ciągi tekstowe ujęte w cudzysłów można wpisywać bezpośrednio w argumenty formuły. Na przykład w ten sposób można obliczyć liczbę miesięcy pomiędzy podanymi datami:

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

    Numery seryjne

    Ponieważ Microsoft Excel przechowuje każdą datę jako numer seryjny, począwszy od 1 stycznia 1900 roku, używasz liczb odpowiadających datom. Chociaż obsługiwana, ta metoda nie jest niezawodna, ponieważ numeracja dat różni się w różnych systemach komputerowych. W systemie dat 1900 możesz użyć poniższej formuły, aby znaleźć liczbę lat między dwiema datami, 1-Jan-2023 i 31-Dec-2025:

    =DATEDIF(44927, 46022, "y")

    Wyniki innych funkcji

    Aby dowiedzieć się, ile dni dzieli nas od dzisiaj do 20 maja 2025 roku, należy skorzystać z tego wzoru.

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

    Uwaga. W Twoich formułach data końcowa musi być zawsze większa od daty początkowej, w przeciwnym razie funkcja Excel DATEDIF zwraca błąd #NUM!

    Mam nadzieję, że powyższe informacje były pomocne w zrozumieniu podstaw. A teraz zobaczmy, jak można użyć funkcji Excel DATEDIF do porównania dat w arkuszach i zwrócenia różnicy.

    Jak uzyskać liczbę dni między dwiema datami w programie Excel

    Jeśli uważnie obserwowałeś argumenty DATEDIF, zauważyłeś, że istnieją 3 różne jednostki do liczenia dni między datami. Którego z nich użyć, zależy dokładnie od tego, jakie są twoje potrzeby.

    Przykład 1. Formuła Excel DATEDIF do obliczania różnicy dat w dniach

    Załóżmy, że masz datę początkową w komórce A2 i datę końcową w komórce B2 i chcesz, aby Excel zwrócił różnicę daty w dniach. Prosta formuła DATEDIF działa po prostu dobrze:

    =DATEDIF(A2, B2, "d")

    Pod warunkiem, że wartość w argumencie start_date jest mniejsza niż w end_date. W przypadku, gdy data początkowa jest większa niż data końcowa, funkcja Excel DATEDIF zwraca błąd #NUM, jak w wierszu 5:

    Jeśli szukasz formuły, która może zwrócić różnicę dat w dniach jako liczbę dodatnią lub ujemną, po prostu odejmij jedną datę bezpośrednio od drugiej:

    =B2-A2

    Zobacz Jak odejmować daty w Excelu, aby uzyskać pełne szczegóły i więcej przykładów formuł.

    Przykład 2. Liczenie dni w Excelu z pominięciem lat

    Załóżmy, że masz dwie listy dat, które należą do różnych lat i chcesz obliczyć liczbę dni między datami, tak jakby były z tego samego roku. Aby to zrobić, użyj formuły DATEDIF z jednostką "YD":

    =DATEDIF(A2, B2, "yd")

    Jeśli chcesz, aby funkcja Excel DATEDIF ignorowała nie tylko lata, ale także mole, to użyj jednostki "md". W tym przypadku twoja formuła obliczy dni między dwiema datami, tak jakby były one tego samego miesiąca i tego samego roku:

    =DATEDIF(A2, B2, "md")

    Poniższy zrzut ekranu demonstruje wyniki, a porównanie go z powyższym zrzutem ekranu może pomóc lepiej zrozumieć różnicę.

    Wskazówka. Aby uzyskać liczbę dni robocze pomiędzy dwoma datami, użyj funkcji NETWORKDAYS lub NETWORKDAYS.INTL.

    Jak obliczyć różnicę dat w tygodniach

    Jak zapewne zauważyłeś, funkcja Excel DATEDIF nie ma specjalnej jednostki do obliczania różnicy dat w tygodniach. Istnieje jednak łatwe obejście.

    Aby dowiedzieć się, ile tygodni jest między dwoma datami, możesz użyć funkcji DATEDIF z jednostką "D", aby zwrócić różnicę w dniach, a następnie podzielić wynik przez 7.

    Aby uzyskać liczbę pełne tygodnie pomiędzy datami, zawiń swoją formułę DATEDIF w funkcję ROUNDDOWN, która zawsze zaokrągla liczbę w kierunku zera:

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

    Gdzie A2 to data początkowa, a B2 to data końcowa okresu, który obliczasz.

    Jak obliczyć liczbę miesięcy między dwiema datami w programie Excel

    Podobnie jak w przypadku liczenia dni, funkcja DATEDIF programu Excel może obliczyć liczbę miesięcy pomiędzy dwoma podanymi przez Ciebie datami. W zależności od podanej przez Ciebie jednostki, formuła da różne wyniki.

    Przykład 1. Obliczanie pełnych miesięcy pomiędzy dwoma datami (DATEDIF)

    Aby policzyć liczbę całych miesięcy pomiędzy datami, używasz funkcji DATEDIF z jednostką "M". Na przykład, poniższa formuła porównuje daty w A2 (data początkowa) i B2 (data końcowa) i zwraca różnicę w miesiącach:

    =DATEDIF(A2, B2, "m")

    Uwaga. Aby formuła DATEDIF poprawnie obliczała miesiące, data końcowa powinna być zawsze większa od daty początkowej; w przeciwnym razie formuła zwraca błąd #NUM.

    Aby uniknąć takich błędów, możesz zmusić Excela, aby zawsze postrzegał starszą datę jako datę początkową, a nowszą jako datę końcową. Aby to zrobić, dodaj prosty test logiczny:

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

    Przykład 2. Uzyskanie ilości miesięcy pomiędzy dwoma datami ignorującymi lata (DATEDIF)

    Aby policzyć liczbę miesięcy pomiędzy datami tak, jakby były one z tego samego roku, wpisz "YM" w argumencie jednostki:

    =DATEDIF(A2, B2, "ym")

    Jak widzisz, formuła ta zwraca również błąd w wierszu 6, gdzie data końcowa jest mniejsza niż data początkowa. Jeśli Twój zestaw danych może zawierać takie daty, rozwiązanie znajdziesz w kolejnych przykładach.

    Przykład 3. Obliczanie miesięcy pomiędzy dwoma datami (funkcja MONTH)

    Alternatywnym sposobem obliczania liczby miesięcy pomiędzy dwiema datami w Excelu jest użycie funkcji MONTH, a dokładniej kombinacji funkcji MONTH i YEAR:

    =(ROK(B2) - ROK(A2))*12 + MIESIĄC(B2) - MIESIĄC(A2)

    Oczywiście ta formuła nie jest tak przejrzysta jak DATEDIF i wymaga czasu, aby owinąć głowę wokół logiki. Ale w przeciwieństwie do funkcji DATEDIF, może porównać dowolne dwie daty i zwrócić różnicę w miesiącach jako wartość dodatnią lub ujemną:

    Zauważ, że formuła YEAR/MONTH nie ma problemu z obliczaniem miesięcy w wierszu 6, w którym data początkowa jest bardziej aktualna niż data końcowa, scenariusz, w którym analogiczna formuła DATEDIF zawodzi.

    Uwaga. Wyniki zwracane przez formuły DATEDIF i YEAR/MONTH nie zawsze są identyczne, ponieważ działają one na różnych zasadach.Funkcja DATEDIF programu Excel zwraca liczbę pełne miesiące kalendarzowe między datami, natomiast formuła YEAR/MONTH operuje na numerach miesięcy.

    Na przykład w wierszu 7 na powyższym zrzucie ekranu formuła DATEDIF zwraca 0, ponieważ między datami nie upłynął jeszcze pełny miesiąc kalendarzowy, natomiast YEAR/MONTH zwraca 1, ponieważ daty należą do różnych miesięcy.

    Przykład 4. Liczenie miesięcy pomiędzy 2 datami z pominięciem lat (funkcja MONTH)

    W przypadku, gdy wszystkie Twoje daty są z tego samego roku, lub chcesz obliczyć miesiące pomiędzy datami ignorując lata, możesz użyć funkcji MONTH, aby pobrać miesiąc z każdej daty, a następnie odjąć jeden miesiąc od drugiego:

    =MONTH(B2) - MONTH(A2)

    Ta formuła działa podobnie jak Excel DATEDIF z jednostką "YM", jak pokazano na poniższym zrzucie ekranu:

    Wyniki zwracane przez dwie formuły różnią się jednak o kilka rzędów:

    • Wiersz 4: data końcowa jest mniejsza niż data początkowa, dlatego DATEDIF zwraca błąd, natomiast MONTH-MONTH daje wartość ujemną.
    • Wiersz 6: daty są z różnych miesięcy, ale rzeczywista różnica dat to tylko jeden dzień. DATEDIF zwraca 0, ponieważ oblicza całe miesiące między 2 datami. MONTH-MONTH zwraca 1, ponieważ odejmuje numery miesięcy od siebie, ignorując dni i lata.

    Jak obliczyć lata pomiędzy dwoma datami w programie Excel

    Jeśli śledziłeś poprzednie przykłady, w których obliczaliśmy miesiące i dni między dwiema datami, to możesz łatwo wyprowadzić formułę do obliczania lat w Excelu. Poniższe przykłady mogą pomóc Ci sprawdzić, czy dobrze zrozumiałeś formułę :)

    Przykład 1. Obliczanie pełnych lat pomiędzy dwoma datami (funkcja DATEDIF)

    Aby dowiedzieć się o liczbie pełnych lat kalendarzowych między dwiema datami, użyj starego dobrego DATEDIF z jednostką "Y":

    =DATEDIF(A2,B2, "y")

    Zauważ, że formuła DATEDIF zwraca 0 w wierszu 6, chociaż daty są z różnych lat. Dzieje się tak dlatego, że liczba pełnych lat kalendarzowych między datą początkową i końcową jest równa zeru. I wierzę, że nie jesteś zaskoczony, aby zobaczyć błąd #NUM! w wierszu 7, gdzie data początkowa jest bardziej aktualna niż data końcowa.

    Przykład 2. Obliczanie lat pomiędzy dwoma datami (funkcja YEAR)

    Alternatywnym sposobem obliczania lat w Excelu jest użycie funkcji YEAR. Podobnie jak w przypadku formuły MONTH, wyodrębniasz rok z każdej daty, a następnie odejmujesz lata od siebie:

    =ROK(B2) - ROK(A2)

    Na poniższym zrzucie ekranu można porównać wyniki zwracane przez funkcje DATEDIF i YEAR:

    W większości przypadków wyniki są identyczne, z tym że:

    • Funkcja DATEDIF oblicza pełne lata kalendarzowe, natomiast formuła YEAR po prostu odejmuje jeden rok od drugiego. Wiersz 6 ilustruje tę różnicę.
    • Formuła DATEDIF zwraca błąd, jeśli data początkowa jest większa niż data końcowa, natomiast funkcja YEAR zwraca wartość ujemną, jak w wierszu 7.

    Jak uzyskać różnicę daty w dniach, miesiącach i latach

    Aby policzyć liczbę pełnych lat, miesięcy i dni między dwiema datami w jednej formule, po prostu konkatenujesz trzy funkcje DATEDIF:

    =DATEDIF(A2, B2, "y") &" lata, "&DATEDIF(A2, B2, "ym") &" miesiące, " &DATEDIF(A2, B2, "md") &" dni"

    Jeśli wolisz nie wyświetlać wartości zerowych, możesz zawinąć każdy DATEDIF w funkcji IF w następujący sposób:

    =IF(DATEDIF(A2,B2, "y")=0, "", DATEDIF(A2,B2, "y") & " lata ") & IF(DATEDIF(A2,B2, "ym")=0,"", DATEDIF(A2,B2, "ym") & " miesiące ") & IF(DATEDIF(A2, B2, "md")=0, "", DATEDIF(A2, B2, "md") & " dni"

    Formuła wyświetla tylko niezerowe elementy, jak pokazano na poniższym zrzucie ekranu:

    Aby uzyskać inne sposoby uzyskania różnicy daty w dniach, zobacz Jak obliczyć dni od lub do daty w programie Excel.

    Formuły DATEDIF do obliczania wieku w programie Excel

    W rzeczywistości obliczanie czyjegoś wieku na podstawie daty urodzenia jest szczególnym przypadkiem obliczania różnicy dat w Excelu, gdzie datą końcową jest data dzisiejsza. Używasz więc zwykłej formuły DATEDIF z jednostką "Y", która zwraca liczbę lat pomiędzy datami, a w argumencie end_date wpisujesz funkcję TODAY():

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

    Gdzie A2 jest datą urodzenia.

    Powyższa formuła oblicza liczbę pełnych lat. Jeśli wolisz uzyskać dokładny wiek, w tym lata, miesiące i dni, to połącz trzy funkcje DATEDIF, tak jak zrobiliśmy to w poprzednim przykładzie:

    =DATEDIF(B2,TODAY(), "y") & " Lata, " & DATEDIF(B2,TODAY(), "ym") & " Miesiące, " & DATEDIF(B2,TODAY(), "md") & " Dni"

    I otrzymasz następujący wynik:

    Aby poznać inne metody przeliczania daty urodzenia na wiek, sprawdź Jak obliczyć wiek z daty urodzenia.

    Date & Time Wizard - łatwy sposób budowania formuł różnicowych dat w Excelu

    Jak pokazano w pierwszej części tego poradnika, funkcja DATEDIF w Excelu jest dość uniwersalna i nadaje się do wielu różnych zastosowań. Ma jednak jedną istotną wadę - jest nieudokumentowana przez Microsoft, co oznacza, że nie znajdziesz DATEDIF na liście funkcji, ani nie zobaczysz podpowiedzi argumentów, gdy zaczniesz wpisywać formułę w komórce. Aby móc używać funkcji DATEDIF wswoich arkuszy, musisz zapamiętać jego składnię i wprowadzić wszystkie argumenty ręcznie, co może być czasochłonnym i podatnym na błędy sposobem, szczególnie dla początkujących.

    Ultimate Suite dla Excela zmienia to radykalnie, ponieważ zapewnia teraz Kreator daty i czasu który może sprawić, że prawie każdy wzór różnicy dat w krótkim czasie.Oto jak:

    1. Zaznacz komórkę, w której chcesz wstawić formułę.
    2. Idź do Narzędzia Ablebits tab> Data & Godzina grupę, a następnie kliknij przycisk Kreator daty i czasu przycisk:

  • Na stronie Kreator daty i czasu pojawia się okno dialogowe, przełączasz się na Różnica zakładka i podać dane dla argumentów formuły:
    • Kliknij w Data 1 (lub kliknij przycisk Zwiń Dialog przycisk po prawej stronie pola) i zaznacz komórkę zawierającą pierwszą datę.
    • Kliknij w Data 2 pole i wybierz komórkę z drugą datą.
    • Wybierz żądaną jednostkę lub kombinację jednostek z menu Różnica w W trakcie wykonywania tych czynności kreator umożliwia podgląd wyniku w polu oraz formuły w komórce.
    • Jeśli podgląd jest zadowalający, kliknij przycisk Wstawić wzór w przeciwnym razie należy spróbować innych jednostek.

    Na przykład, w ten sposób można uzyskać liczba dni pomiędzy dwoma datami w Excelu:

    Po wstawieniu formuły do wybranej komórki, możesz ją skopiować do innych komórek w zwykły sposób, klikając dwukrotnie lub przeciągając uchwyt wypełnienia. Wynik będzie wyglądał podobnie do tego:

    Aby przedstawić wyniki w najbardziej odpowiedni sposób, dostępnych jest jeszcze kilka dodatkowych opcji:

    • Wyłączenie lat i/lub wykluczyć miesiące z obliczeń.
    • Pokazać lub nie pokazać etykiety tekstowe jak dni , miesiące , tygodnie oraz lat .
    • Pokazać lub nie pokazać zero jednostek .
    • Zwróć wyniki jako wartości ujemne jeśli Data 1 (data początkowa) jest większa niż Data 2 (data końcowa).

    Jako przykład, uzyskajmy różnicę między dwoma datami w latach, miesiącach, tygodniach i dniach, ignorując jednostki zerowe:

    Korzyści z używania Date & Time Formula Wizard

    Oprócz szybkości i prostoty, Date & Time Wizard zapewnia jeszcze kilka innych korzyści:

    • W przeciwieństwie do zwykłej formuły DATEDIF, formuła zaawansowana utworzona przez kreatora nie dba o to, która z dwóch dat jest mniejsza, a która większa. Różnica jest zawsze obliczana idealnie, nawet jeśli Data 1 (data początkowa) jest większa niż Data 2 (data końcowa).
    • Kreator obsługuje wszystkie możliwe jednostki (dni, tygodnie, miesiące i lata) i pozwala wybrać spośród 11 różnych kombinacji tych jednostek.
    • Formuły tworzone przez kreatora są normalnymi formułami Excela, więc można je edytować, kopiować i przenosić w zwykły sposób. Można również udostępniać arkusze innym osobom, a wszystkie formuły pozostaną na swoim miejscu, nawet jeśli ktoś nie posiada Ultimate Suite w swoim Excelu.

    W ten sposób obliczysz różnicę między dwiema datami w różnych przedziałach czasowych. Mam nadzieję, że funkcja DATEDIF i inne formuły, które dziś poznałeś, okażą się przydatne w Twojej pracy.

    Dostępne pliki do pobrania

    Ultimate Suite 14-dniowa w pełni funkcjonalna wersja (plik .exe)

    Michael Brown jest oddanym entuzjastą technologii z pasją do upraszczania złożonych procesów za pomocą narzędzi programowych. Dzięki ponad dziesięcioletniemu doświadczeniu w branży technologicznej doskonalił swoje umiejętności w programach Microsoft Excel i Outlook, a także w Arkuszach i Dokumentach Google. Blog Michaela jest poświęcony dzieleniu się swoją wiedzą i doświadczeniem z innymi, dostarczając łatwych do zastosowania wskazówek i samouczków w celu poprawy produktywności i wydajności. Niezależnie od tego, czy jesteś doświadczonym profesjonalistą, czy początkującym, blog Michaela oferuje cenne spostrzeżenia i praktyczne porady dotyczące maksymalnego wykorzystania tych niezbędnych narzędzi programowych.