Innehållsförteckning
I den här handledningen får du en enkel förklaring av Excel-funktionen DATEDIF och några formelexempel som visar hur du jämför datum och beräknar skillnaden i dagar, veckor, månader eller år.
Under de senaste veckorna har vi undersökt nästan alla aspekter av att arbeta med datum och tider i Excel. Om du har följt vår bloggserie vet du redan hur du infogar och formaterar datum i dina kalkylblad, hur du beräknar veckodagar, veckor, månader och år samt adderar och subtraherar datum.
I den här handledningen fokuserar vi på att beräkna datumskillnader i Excel och du lär dig olika sätt att räkna antalet dagar, veckor, månader och år mellan två datum.
Hitta enkelt skillnaden mellan två datum i Excel
Få resultatet som en färdig formel i år, månader, veckor eller dagar.
Läs merLägg till och subtrahera datum med ett par klick
Delegera byggandet av datum & tidsformler till en expert
Läs merBeräkna åldern i Excel i farten
Och få en skräddarsydd formel
Läs merExcel DATEDIF-funktionen - få fram datumskillnad
Som namnet antyder är funktionen DATEDIF avsedd för att beräkna skillnaden mellan två datum.
DATEDIF är en av de få odokumenterade funktionerna i Excel, och eftersom den är "dold" hittar du den inte i Formel Du får inte heller några tips om vilka argument du ska ange när du börjar skriva in funktionens namn i formellfältet. Därför är det viktigt att känna till hela syntaxen för Excel DATEDIF för att kunna använda den i dina formler.
Excel DATEDIF-funktion - syntax
Syntaxen för Excel-funktionen DATEDIF är följande:
DATEDIF(start_datum, slut_datum, enhet)Alla tre argumenten krävs:
Start_datum - det första datumet för den period som du vill beräkna.
Slutdatum - periodens slutdatum.
Enhet - den tidsenhet som ska användas vid beräkning av skillnaden mellan två datum. Genom att ange olika enheter kan du få DATEDIF-funktionen att återge datumskillnaden i dagar, månader eller år. Totalt finns det sex enheter som beskrivs i följande tabell.
Enhet | Betydelse | Förklaring |
Y | År | Antal hela år mellan start- och slutdatum. |
M | Månader | Antal hela månader mellan datumen. |
D | Dagar | Antal dagar mellan startdatum och slutdatum. |
MD | Dagar utom år och månader | Datumskillnaden i dagar, utan hänsyn till månader och år. |
YD | Dagar exklusive år | Datumskillnaden i dagar, utan hänsyn till år. |
YM | Månader utom dagar och år | Datumskillnaden i månader, utan hänsyn till dagar och år. |
Excel DATEDIF-formeln
För att få fram skillnaden mellan två datum i Excel måste du ange start- och slutdatum till funktionen DATEDIF. Detta kan göras på olika sätt, förutsatt att Excel kan förstå och tolka de angivna datumen korrekt.
Cellreferenser
Det enklaste sättet att skapa en DATEDIF-formel i Excel är att ange två giltiga datum i separata celler och hänvisa till dessa celler. Följande formel räknar till exempel antalet dagar mellan datumen i cellerna A1 och B1:
=DATEDIF(A1, B1, "d")
Textsträngar
Excel förstår datum i många textformat, t.ex. "1-Jan-2023", "1/1/2023", "1 januari 2023" etc. Datum som textsträngar inom citationstecken kan skrivas in direkt i en formels argument. Så här kan du till exempel beräkna antalet månader mellan de angivna datumen:
=DATEDIF("1/1/2023", "12/31/2025", "m")
Serienummer
Eftersom Microsoft Excel lagrar varje datum som ett löpnummer med början den 1 januari 1900, använder du nummer som motsvarar datumen. Även om den här metoden stöds är den inte tillförlitlig eftersom datumnumreringen varierar i olika datorsystem. I 1900-datumsystemet kan du använda nedanstående formel för att hitta antalet år mellan två datum, 1-Jan-2023 och 31-Dec-2025:
=DATEDIF(44927, 46022, "y")
Resultat av andra funktioner
För att ta reda på hur många dagar det är mellan idag och den 20 maj 2025 kan du använda följande formel.
=DATEDIF(TODAY(), "5/20/2025", "d")
Observera: I dina formler måste slutdatumet alltid vara större än startdatumet, annars returnerar Excel-funktionen DATEDIF felet #NUM!
Förhoppningsvis har ovanstående information hjälpt dig att förstå grunderna. Nu ska vi se hur du kan använda Excel-funktionen DATEDIF för att jämföra datum i dina kalkylblad och returnera skillnaden.
Hur man får fram antalet dagar mellan två datum i Excel
Om du har observerat DATEDIF:s argument noggrant har du märkt att det finns tre olika enheter för att räkna dagar mellan datumen. Vilken enhet du ska använda beror på dina behov.
Exempel 1. Excel-formeln DATEDIF för att beräkna datumskillnaden i dagar.
Antag att du har startdatumet i cell A2 och slutdatumet i cell B2 och att du vill att Excel ska återge datumskillnaden i dagar. En enkel DATEDIF-formel fungerar utmärkt:
=DATEDIF(A2, B2, "d")
Förutsatt att ett värde i argumentet start_date är mindre än i end_date. Om startdatumet är större än slutdatumet returnerar Excel-funktionen DATEDIF felet #NUM, som i rad 5:
Om du letar efter en formel som kan återge datumskillnaden i dagar som antingen ett positivt eller negativt tal, subtraherar du helt enkelt ett datum direkt från det andra:
=B2-A2
Se Hur man subtraherar datum i Excel för fullständig information och fler exempel på formler.
Exempel 2. Räkna dagar i Excel och ignorera år.
Anta att du har två listor med datum som hör till olika år och att du vill beräkna antalet dagar mellan datumen som om de hörde till samma år. För att göra detta använder du en DATEDIF-formel med enheten "YD":
=DATEDIF(A2, B2, "yd")
Om du vill att Excel-funktionen DATEDIF inte bara ska bortse från år utan även från månader, använd enheten "md". I det här fallet kommer formeln att beräkna dagar mellan två datum som om de var samma månad och samma år:
=DATEDIF(A2, B2, "md")
Skärmbilden nedan visar resultatet och en jämförelse med skärmbilden ovan kan hjälpa dig att förstå skillnaden bättre.
Tips. För att få fram antalet arbetsdagar mellan två datum använder du funktionen NETWORKDAYS eller NETWORKDAYS.INTL.
Hur man beräknar datumskillnaden i veckor
Som du säkert har märkt har Excel-funktionen DATEDIF ingen särskild enhet för att beräkna datumskillnaden i veckor. Det finns dock en enkel lösning.
För att ta reda på hur många veckor det är mellan två datum kan du använda funktionen DATEDIF med enheten "D" för att få tillbaka skillnaden i dagar och sedan dividera resultatet med 7.
För att få fram antalet hela veckor mellan datumen, omsluta din DATEDIF-formel med funktionen ROUNDDOWN, som alltid avrundar siffran mot noll:
=ROUNDDOWN((DATEDIF(A2, B2, "d") / 7), 0)
Där A2 är startdatum och B2 är slutdatum för den period du beräknar.
Hur man beräknar antalet månader mellan två datum i Excel
På samma sätt som att räkna dagar kan Excel-funktionen DATEDIF beräkna antalet månader mellan två datum som du anger. Beroende på vilken enhet du anger kommer formeln att ge olika resultat.
Exempel 1. Beräkna hela månader mellan två datum (DATEDIF)
Om du vill räkna antalet hela månader mellan datumen använder du funktionen DATEDIF med enheten "M". Följande formel jämför till exempel datumen i A2 (startdatum) och B2 (slutdatum) och returnerar skillnaden i månader:
=DATEDIF(A2, B2, "m")
Observera: För att formeln DATEDIF ska kunna beräkna månader korrekt ska slutdatumet alltid vara större än startdatumet, annars returnerar formeln felet #NUM.
För att undvika sådana fel kan du tvinga Excel att alltid betrakta ett äldre datum som startdatum och ett nyare datum som slutdatum. Lägg till ett enkelt logiskt test för att göra detta:
=IF(B2>A2, DATEDIF(A2,B2, "m"), DATEDIF(B2,A2, "m"))
Exempel 2. Få fram antalet månader mellan två datum som ignorerar år (DATEDIF)
Om du vill räkna antalet månader mellan datumen som om de var samma år skriver du "YM" i argumentet för enheten:
=DATEDIF(A2, B2, "ym")
Som du ser ger formeln också ett fel i rad 6 där slutdatumet är mindre än startdatumet. Om ditt datamaterial kan innehålla sådana datum hittar du lösningen i nästa exempel.
Exempel 3. Beräkning av månader mellan två datum (funktionen MONTH)
Ett alternativt sätt att beräkna antalet månader mellan två datum i Excel är att använda funktionen MONTH, eller mer exakt en kombination av funktionerna MONTH och YEAR:
=(ÅR(B2) - ÅR(A2))*12 + MÅNAD(B2) - MÅNAD(A2)
Den här formeln är naturligtvis inte lika transparent som DATEDIF och det tar tid att förstå logiken, men till skillnad från DATEDIF-funktionen kan den jämföra två datum och återge skillnaden i månader som antingen ett positivt eller negativt värde:
Observera att formeln YEAR/MONTH inte har några problem med att beräkna månader i rad 6 där startdatumet är senare än slutdatumet, det scenario där en analog DATEDIF-formel misslyckas.
Observera: De resultat som returneras av formlerna DATEDIF och YEAR/MONTH är inte alltid identiska eftersom de fungerar enligt olika principer. Excel-funktionen DATEDIF returnerar antalet hela kalendermånader mellan datumen, medan formeln YEAR/MONTH använder månadernas nummer.
På rad 7 i skärmdumpen ovan ger t.ex. formeln DATEDIF 0 eftersom det ännu inte har gått en hel kalendermånad mellan datumen, medan YEAR/MONTH ger 1 eftersom datumen hör till olika månader.
Exempel 4. Räkna månader mellan 2 datum utan att ta hänsyn till år (funktionen MONTH)
Om alla dina datum är samma år, eller om du vill beräkna månader mellan datum som ignorerar år, kan du använda funktionen MONTH för att hämta månaden från varje datum och sedan subtrahera den ena månaden från den andra:
=MÅNAD(B2) - MÅNAD(A2)
Den här formeln fungerar på samma sätt som Excel DATEDIF med enheten "YM", vilket visas i följande skärmdump:
De resultat som returneras av de två formlerna skiljer sig dock åt ett par rader:
- Rad 4: slutdatumet är mindre än startdatumet och därför ger DATEDIF ett fel medan MONTH-MONTH ger ett negativt värde.
- Rad 6: datumen tillhör olika månader, men den faktiska datumskillnaden är bara en dag. DATEDIF ger 0 eftersom den beräknar hela månader mellan två datum. MONTH-MONTH ger 1 eftersom den subtraherar månadernas nummer från varandra utan att ta hänsyn till dagar och år.
Hur man beräknar år mellan två datum i Excel
Om du har följt de tidigare exemplen där vi har beräknat månader och dagar mellan två datum kan du enkelt ta fram en formel för att beräkna år i Excel. Följande exempel kan hjälpa dig att kontrollera om du har fått formeln rätt :)
Exempel 1. Beräkning av hela år mellan två datum (funktionen DATEDIF)
Om du vill ta reda på antalet hela kalenderår mellan två datum använder du det gamla goda DATEDIF med enheten "Y":
=DATEDIF(A2,B2, "y")
Lägg märke till att DATEDIF-formeln ger 0 i rad 6, trots att datumen är olika år. Detta beror på att antalet hela kalenderår mellan start- och slutdatum är lika med noll. Och jag tror inte att du är förvånad över att se felet #NUM! i rad 7 där startdatumet är senare än slutdatumet.
Exempel 2. Beräkning av årtal mellan två datum (YEAR-funktionen)
Ett alternativt sätt att beräkna årtal i Excel är att använda YEAR-funktionen. På samma sätt som med MONTH-formeln extraherar du året från varje datum och subtraherar sedan åren från varandra:
=ÅR(B2) - ÅR(A2)
I följande skärmdump kan du jämföra de resultat som returneras av funktionerna DATEDIF och YEAR:
I de flesta fall är resultaten identiska, förutom att:
- Funktionen DATEDIF beräknar hela kalenderår, medan formeln YEAR bara subtraherar ett år från ett annat. Rad 6 illustrerar skillnaden.
- Formeln DATEDIF returnerar ett fel om startdatumet är större än slutdatumet, medan funktionen YEAR returnerar ett negativt värde, som i rad 7.
Hur man får fram datumskillnaden i dagar, månader och år
Om du vill räkna antalet år, månader och dagar mellan två datum i en enda formel kan du helt enkelt sammanfoga tre DATEDIF-funktioner:
=DATEDIF(A2, B2, "y") &" år, "&DATEDIF(A2, B2, "ym") &" månader, " &DATEDIF(A2, B2, "md") &" dagar"
Om du hellre vill undvika att visa nollvärden kan du omsluta varje DATEDIF i IF-funktionen på följande sätt:
=IF(DATEDIF(A2,B2, "y")=0, "", DATEDIF(A2,B2, "y") & " år ") & IF(DATEDIF(A2,B2, "ym")=0, "", DATEDIF(A2,B2, "ym") & " månader ") & IF(DATEDIF(A2,B2, "md")=0, "", DATEDIF(A2,B2, "md") & " dagar"
Formeln visar endast element som inte är noll, vilket visas i följande skärmdump:
För andra sätt att få fram datumskillnaden i dagar, se Hur man beräknar dagar sedan eller fram till datum i Excel.
DATEDIF-formler för att beräkna ålder i Excel
Att beräkna någons ålder baserat på födelsedatumet är faktiskt ett specialfall av att beräkna datumskillnader i Excel, där slutdatumet är dagens datum. Du använder alltså en vanlig DATEDIF-formel med enheten "Y" som returnerar antalet år mellan datumen och anger funktionen TODAY() i argumentet end_date:
=DATEDIF(A2, TODAY(), "y")
Där A2 är födelsedatumet.
Formeln ovan beräknar antalet hela år. Om du hellre vill få fram den exakta åldern, inklusive år, månader och dagar, kan du sammanfoga tre DATEDIF-funktioner som vi gjorde i det föregående exemplet:
=DATEDIF(B2,TODAY(), "y") & " År, " & DATEDIF(B2,TODAY(), "ym") & " Månader, " & DATEDIF(B2,TODAY(), "md") & " Dagar"
Du får följande resultat:
Om du vill lära dig andra metoder för att omvandla ett födelsedatum till ålder kan du läsa Hur man beräknar ålder från födelsedatum.
Date & Time Wizard - enkelt sätt att skapa formler för datumskillnader i Excel
Som visades i den första delen av den här handledningen är Excel DATEDIF en ganska mångsidig funktion som lämpar sig för många olika användningsområden. Det finns dock en betydande nackdel - den är odokumenterad av Microsoft, vilket innebär att du inte hittar DATEDIF i listan över funktioner och att du inte heller får se några verktygstips för argument när du börjar skriva en formel i en cell. För att kunna använda DATEDIF-funktionen ii dina kalkylblad måste du komma ihåg syntaxen och ange alla argument manuellt, vilket kan vara ett tidskrävande och felbenäget sätt, särskilt för nybörjare.
Ultimate Suite för Excel ändrar detta radikalt eftersom den nu ger dig Guiden Datum & Tid som på nolltid kan göra nästan vilken formel som helst för att göra skillnaden mellan datum:
- Välj den cell där du vill infoga formeln.
- Gå till Verktyg för Ablebits flik> Datum & Tid gruppen och klicka på Guiden Datum & Tid knapp:
- Klicka på i Datum 1 (eller klicka på rutan Dialog för att kollapsa knappen till höger om rutan) och välj en cell som innehåller det första datumet.
- Klicka på i Datum 2 och välj en cell med det andra datumet.
- Välj önskad enhet eller kombination av enheter från listan Skillnad i När du gör detta låter guiden dig förhandsgranska resultatet i rutan och formeln i cellen.
- Om du är nöjd med förhandsgranskningen klickar du på Infoga formel knappen, annars kan du prova olika enheter.
Så här kan du till exempel få fram den antal dagar mellan två datum i Excel:
När formeln har infogats i den markerade cellen kan du kopiera den till andra celler som vanligt genom att dubbelklicka eller dra i fyllningshandtaget. Resultatet kommer att se ut ungefär så här:
För att presentera resultaten på det mest lämpliga sättet finns ytterligare några alternativ:
- Uteslut år och/eller utesluta månader från beräkningar.
- Visa eller inte visa Textetiketter. som dagar , månader , veckor , och år .
- Visa eller inte visa noll enheter .
- Återge resultaten som negativa värden om datum 1 (startdatum) är större än datum 2 (slutdatum).
Som exempel kan vi ta fram skillnaden mellan två datum i år, månader, veckor och dagar, utan att ta hänsyn till noll enheter:
Fördelar med att använda guiden Date & Time Formula Wizard
Förutom snabbhet och enkelhet har guiden Date & Time Wizard ytterligare några fördelar:
- Till skillnad från en vanlig DATEDIF-formel bryr sig en avancerad formel som skapas av guiden inte om vilket av de två datumen som är mindre eller större. Skillnaden beräknas alltid perfekt även om datum 1 (startdatum) är större än datum 2 (slutdatum).
- Guiden stöder alla möjliga enheter (dagar, veckor, månader och år) och låter dig välja mellan 11 olika kombinationer av dessa enheter.
- Formlerna som guiden skapar för dig är vanliga Excel-formler, så du kan redigera, kopiera eller flytta dem som vanligt. Du kan också dela dina arbetsblad med andra personer och alla formler kommer att finnas kvar, även om någon inte har Ultimate Suite i sitt Excel.
Så här beräknar du skillnaden mellan två datum i olika tidsintervall. Förhoppningsvis kommer DATEDIF-funktionen och andra formler som du lärt dig idag att vara användbara i ditt arbete.
Tillgängliga nedladdningar
Ultimate Suite 14-dagars fullt fungerande version (.exe-fil)