Hoppa till innehållet
Dagsmart.

Datum i Excel

Här går vi igenom de vanligaste funktionerna och vanliga beräkningar med exempel för att hantera datum i Microsoft Excel.

Datumhantering i Excel behövs så fort man arbetar med rapportering, uppföljning eller annan tidsbaserad information. Funktionerna nedan täcker det mesta av vardagsbehovet: bygga datum, plocka isär dem, räkna skillnader och hoppa över helger och helgdagar.

Funktionsnamnen står på svenska med det engelska namnet inom parentes, eftersom en formel skriven i ett svenskt Excel inte går att klistra in i ett engelskt.

Grunder

Datumsystem

I Excel är ett datum ett tal. Serienummer 1 är den 1 januari 1900, och varje dygn därefter lägger till 1. Det är därför A2-A1 ger ett antal dagar, och det är därför ett datum kan se ut som 46204 när cellen råkar vara formaterad som tal – värdet är rätt, formatet är fel.

Två saker följer av systemet:

  • Datum före den 1 januari 1900 går inte att räkna med. De måste lagras som text, och då fungerar ingen av funktionerna nedan.
  • Excel tror att 1900 var ett skottår. Felet är ärvt från Lotus 1-2-3 och rättas aldrig, eftersom varje kalkylblad i världen bygger på det. Det påverkar bara beräkningar som passerar februari 1900.

Det finns också ett äldre datumsystem som utgår från 1904. Undvik det – blandar du arbetsböcker med olika system förskjuts alla datum fyra år.

Komma eller semikolon?

I Sverige används komma som decimaltecken, medan engelskspråkiga länder använder punkt. Ett komma kan därför inte också skilja argument åt, och svenska Excel använder semikolon i stället.

// Svenska Excel
=SUMMA(A1; A2; A3)

// Engelska Excel
=SUM(A1, A2, A3)

Nedan används semikolon genomgående.

När datumet inte är ett datum

Datum som importerats från ett annat system ligger ofta som text, och då fungerar varken sortering eller subtraktion. Ett snabbt test: text vänsterställs som standard, tal och datum högerställs. =ÄRTEXT(A1) (ISTEXT) ger ett säkrare svar.

Rätta det med Data › Text till kolumner › Slutför på hela kolumnen, eller med DATUMVÄRDE nedan.

Skapa datum

DATUM (DATE)

DATUM(år; månad; dag) bygger ett datum av tre tal. Användbar när delarna kommer från olika celler.

=DATUM(2026; 7; 23) // => 2026-07-23

Funktionen räknar över gränserna, vilket är praktiskt oftare än man tror: månad 13 blir januari året efter, och dag 0 blir sista dagen i föregående månad.

=DATUM(2026; 13; 1) // => 2027-01-01
=DATUM(2026; 8; 0)  // => 2026-07-31

IDAG (TODAY) och NU (NOW)

IDAG() ger dagens datum, NU() ger datum och klockslag.

=IDAG()
=NU()

Båda är flyktiga: de räknas om vid varje ändring i arbetsboken, inte bara när du öppnar den. Vill du frysa dagens datum i en cell skriver du in det med Ctrl+Skift+; i stället.

DATUMVÄRDE (DATEVALUE)

DATUMVÄRDE(datumtext) gör om ett datum som ligger som text till ett serienummer.

=DATUMVÄRDE("2026-07-01") // => 46204

Svaret är ett tal tills du formaterar cellen som datum. Funktionen förstår bara format som Excel känner igen i sin egen språkinställning – "1 juli 2026" fungerar i svenska Excel, "July 1, 2026" gör det inte.

Läsa ut delar av ett datum

DAG (DAY), MÅNAD (MONTH), ÅR (YEAR)

// A1 = 2026-07-01

=DAG(A1)   // => 1
=MÅNAD(A1) // => 7
=ÅR(A1)    // => 2026

VECKODAG (WEEKDAY)

VECKODAG(datum; [returtyp]) ger veckodagen som ett tal. Returtypen avgör vad talen betyder, och standardvärdet är amerikanskt – veckan börjar på söndag.

ReturtypGer
1 eller utelämnad1 = söndag … 7 = lördag
21 = måndag … 7 = söndag
30 = måndag … 6 = söndag
// A1 = 2026-07-01, en onsdag

=VECKODAG(A1; 2) // => 3

Använd 2 när du vill ha svenska veckodagsnummer, och 3 när du vill räkna: A1-VECKODAG(A1;3) ger måndagen i samma vecka.

ISOVECKONR (ISOWEEKNUM)

ISOVECKONR(datum) ger veckonumret enligt ISO 8601, som är det Sverige använder: veckan börjar på måndag, och vecka 1 är den vecka som innehåller årets första torsdag.

// A1 = 2027-01-01, en fredag

=ISOVECKONR(A1) // => 53

Det finns också VECKONR (WEEKNUM), men VECKONR(datum; 2) ger inte svenska veckonummer trots att veckan då börjar på måndag. Med returtyp 2 är vecka 1 alltid den vecka som innehåller den 1 januari, vilket ger fel svar de år som januari inleds sent i veckan – exemplet ovan blir 1 i stället för 53. Vill du ändå använda VECKONR är 21 den enda returtyp som följer ISO:

=VECKONR(A1; 21) // => 53, samma som ISOVECKONR

SLUTMÅNAD (EOMONTH)

SLUTMÅNAD(startdatum; månader) ger sista dagen i månaden, förskjutet med angivet antal månader.

// A1 = 2026-07-01

=SLUTMÅNAD(A1; 0)  // => 2026-07-31
=SLUTMÅNAD(A1; 2)  // => 2026-09-30
=SLUTMÅNAD(A1; -2) // => 2026-05-31

Månadens första dag får du med =SLUTMÅNAD(A1;-1)+1.

Formatera med TEXT

TEXT(värde; format) gör om ett datum till text i valfritt format.

// A1 = 2026-07-01

=TEXT(A1; "ÅÅÅÅ-MM-DD") // => 2026-07-01
=TEXT(A1; "D MMMM ÅÅÅÅ") // => 1 juli 2026
=TEXT(A1; "DDDD")        // => onsdag

Formatkoderna följer Excels språk: Å för år, M för månad, D för dag i svenska Excel, Y/M/D i engelska. En arbetsbok som ska öppnas av båda bör därför formatera cellen i stället för att göra om datumet till text – resultatet av TEXT är text och går inte längre att räkna med.

Skillnad mellan datum

Antal dagar

Subtraktion räcker, och ger ett negativt tal när ordningen är omvänd.

// A1 = 2026-07-01
// A2 = 2026-07-15

=A2-A1 // => 14
=A1-A2 // => -14

DAGAR(slutdatum; startdatum) (DAYS) gör samma sak med namngivna argument. Observera ordningen – slutdatumet först.

=DAGAR(A2; A1) // => 14

Att skillnaden mellan den 1 och den 15 är 14 och inte 15 är väntat: subtraktionen räknar mellanrummen, inte dagarna. Vill du räkna båda ändpunkterna lägger du till 1.

År, månader och dagar med DATEDIF

DATEDIF(startdatum; slutdatum; enhet) räknar skillnaden i hela år, månader eller dagar.

=DATEDIF(A1; A2; "Y")  // Hela år
=DATEDIF(A1; A2; "M")  // Hela månader
=DATEDIF(A1; A2; "D")  // Dagar
=DATEDIF(A1; A2; "YM") // Månader utöver hela år
=DATEDIF(A1; A2; "YD") // Dagar utöver hela år

Tre saker är värda att veta om den:

  • Namnet översätts inte. Den heter DATEDIF även i svenska Excel, och den föreslås inte medan du skriver – du får skriva ut hela namnet själv.
  • Startdatumet måste ligga före slutdatumet. Annars blir svaret #OGILTIGT!. Vet du inte vilket som är störst kan du vända på dem och sätta tecknet själv:
=DATEDIF(MIN(A1; A2); MAX(A1; A2); "D") * OM(A1 > A2; -1; 1)
  • Enheten "MD" avråder Microsoft själva från. Den ska ge dagarna utöver hela månader men kan ge noll eller ett negativt tal. Behöver du “3 år, 2 månader och 5 dagar” är det säkrare att räkna sista ledet som en subtraktion:
// Dagar utöver hela år och månader, utan "MD"
=A2 - EDATUM(A1; DATEDIF(A1; A2; "Y")*12 + DATEDIF(A1; A2; "YM"))

Andel av ett år med ÅRDEL

ÅRDEL(startdatum; slutdatum; [bas]) (YEARFRAC) ger skillnaden som ett decimaltal av ett år. Bas 1 räknar med verkliga dagar och verkliga år, alltså även skottdagar.

=ÅRDEL(A1; A2; 1) // => 0,0384…

Lägg till eller dra ifrån

Dagar och veckor

Addition och subtraktion räcker.

// A1 = 2026-07-01

=A1 + 14   // => 2026-07-15
=A1 - 14   // => 2026-06-17
=A1 + 3*7  // Tre veckor fram

Månader och år med EDATUM (EDATE)

EDATUM(startdatum; månader) lägger till eller drar ifrån hela månader, och landar på samma dag i månaden.

// A1 = 2026-07-01

=EDATUM(A1; 3)   // => 2026-10-01
=EDATUM(A1; -3)  // => 2026-04-01
=EDATUM(A1; 12)  // Ett år fram

Finns ingen motsvarande dag i målmånaden justeras svaret till månadens sista dag: en månad efter den 31 januari är den 28 februari.

Arbetsdagar och helgdagar

Excel känner till lördagar och söndagar, men inte svenska helgdagar. De måste du mata in själv, som ett cellområde med datum. Lägg dem i en egen kolumn, gärna på ett eget blad, och ge området ett namn under Formler › Namnhanteraren – då kan formlerna säga Helgdagar i stället för Blad2!$A$1:$A$20.

Alla helgdagar

Ta med både röda dagar och de dagar din arbetsplats faktiskt är stängd. Julafton, midsommarafton och nyårsafton är inte röda dagar men är lediga hos de flesta, och Excel har ingen åsikt om vilka datum du lägger i listan.

NETTOARBETSDAGAR (NETWORKDAYS)

NETTOARBETSDAGAR(startdatum; slutdatum; [lediga]) räknar arbetsdagarna från och med startdatumet till och med slutdatumet. Båda ändpunkterna räknas med, till skillnad från subtraktion.

=NETTOARBETSDAGAR(A1; A2)           // Utan helgdagar
=NETTOARBETSDAGAR(A1; A2; Helgdagar) // Hoppar även över helgdagarna

ARBETSDAG (WORKDAY)

ARBETSDAG(startdatum; dagar; [lediga]) ger datumet ett visst antal arbetsdagar fram eller tillbaka. Startdatumet räknas inte som en av dagarna.

=ARBETSDAG(A1; 10; Helgdagar)  // Tio arbetsdagar fram
=ARBETSDAG(A1; -10; Helgdagar) // Tio arbetsdagar tillbaka
=ARBETSDAG(A1; 1; Helgdagar)   // Nästa arbetsdag

När helgen inte är lördag och söndag

NETTOARBETSDAGAR.INT och ARBETSDAG.INT (NETWORKDAYS.INTL, WORKDAY.INTL) tar ett extra argument som säger vilka veckodagar som är lediga. Det är det du behöver för skiftarbete, butik eller vård.

=NETTOARBETSDAGAR.INT(A1; A2; helg; Helgdagar)
=ARBETSDAG.INT(A1; dagar; helg; Helgdagar)

Argumentet helg anges antingen som ett tal eller som en sträng med sju tecken, ett per veckodag med start på måndag, där 1 betyder ledig:

helgLediga dagar
1 eller utelämnadLördag och söndag
11Bara söndag
17Bara lördag
"0000011"Lördag och söndag
"0000001"Bara söndag
"0001010"Torsdag och lördag
// Arbetsdagar när bara söndagen är ledig
=NETTOARBETSDAGAR.INT(A1; A2; 11; Helgdagar)

Vanliga beräkningar

Ålder i hela år

=DATEDIF(A1; IDAG(); "Y")

Vilket kvartal ett datum ligger i

=AVRUNDA.UPPÅT(MÅNAD(A1)/3; 0) // => 1–4

Måndagen i samma vecka

=A1 - VECKODAG(A1; 3)

Sista arbetsdagen i månaden

=ARBETSDAG(SLUTMÅNAD(A1; 0) + 1; -1; Helgdagar)

Antal helgdagar som infaller på en vardag i perioden

Skillnaden mellan arbetsdagarna med och utan helgdagslistan är precis de helgdagar som annars hade varit arbetsdagar.

=NETTOARBETSDAGAR(A1; A2) - NETTOARBETSDAGAR(A1; A2; Helgdagar)

En serie datum

SEKVENS(rader; [kolumner]; [start]; [steg]) (SEQUENCE) fyller ett område. Formeln skrivs i en cell och svaret sprider sig nedåt.

=SEKVENS(30; 1; A1; 1)  // 30 dagar från och med A1
=SEKVENS(12; 1; A1; 7)  // Var sjunde dag, tolv gånger

Månadsvis behöver EDATUM, eftersom månader inte har lika många dagar:

=EDATUM(A1; SEKVENS(12; 1; 0; 1)) // Samma datum i tolv månader

Färga helger och helgdagar

Markera datumkolumnen och lägg till en regel under Start › Villkorsstyrd formatering › Ny regel › Bestäm vilka celler som ska formateras med en formel. Låt raden vara relativ och kolumnen absolut:

=VECKODAG($A1; 2) > 5           // Lördag och söndag
=ANTAL.OM(Helgdagar; $A1) > 0   // Datum som finns i helgdagslistan

Vill du hellre slippa formlerna?

Kalkylatorn här på sajten räknar skillnaden mellan två datum, och framåt eller bakåt i arbetsdagar, med svenska helgdagar inbakade. Ska datumen in i ett system i stället för i ett kalkylblad finns API:t.

Räkna dagar och arbetsdagar Helgdagarna som JSON