Spis treści
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ęcejDodawanie i odejmowanie dat za pomocą kilku kliknięć
Deleguj datę & budowanie formuł czasowych do eksperta
WięcejObliczanie wieku w programie Excel w locie
I otrzymać formułę dostosowaną do potrzeb klienta
WięcejFunkcja 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:
- Zaznacz komórkę, w której chcesz wstawić formułę.
- Idź do Narzędzia Ablebits tab> Data & Godzina grupę, a następnie kliknij przycisk Kreator daty i czasu przycisk:
- 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)