Excel har ingen funktion til helligdage og heller ingen til påske. Du skal altså selv regne dem ud. Det er lettere, end det lyder, for de fleste danske helligdage ligger et fast antal dage fra påskedag. Kan du beregne påskedag, har du resten.

Eksempelfilen gør det hele: du skriver et årstal, og tabellen viser helligdagene for det år og de to næste, med store bededag kun for år før 2024.

Helligdage i 2026, 2027 og 2028

Sådan så tabellen ud, da vi skrev 2026 i årstalscellen. Datoerne er ikke skrevet af fra en kalender, men regnet ud af formlerne længere nede på siden og afprøvet i Excel.

Helligdag 2026 2027 2028
Nytårsdag to 01-01-2026 fr 01-01-2027 lø 01-01-2028
Skærtorsdag to 02-04-2026 to 25-03-2027 to 13-04-2028
Langfredag fr 03-04-2026 fr 26-03-2027 fr 14-04-2028
Påskedag sø 05-04-2026 sø 28-03-2027 sø 16-04-2028
2. påskedag ma 06-04-2026 ma 29-03-2027 ma 17-04-2028
Kristi himmelfartsdag to 14-05-2026 to 06-05-2027 to 25-05-2028
Pinsedag sø 24-05-2026 sø 16-05-2027 sø 04-06-2028
2. pinsedag ma 25-05-2026 ma 17-05-2027 ma 05-06-2028
Juledag fr 25-12-2026 lø 25-12-2027 ma 25-12-2028
2. juledag lø 26-12-2026 sø 26-12-2027 ti 26-12-2028

De ti dage er de danske helligdage. Store bededag står ikke i tabellen, fordi den ikke har været en helligdag siden 2024, og 1. maj, grundlovsdag, juleaftensdag og nytårsaftensdag er ifølge borger.dk ikke helligdage. Begge dele uddyber vi længere nede.

Påskedag og pinsedag falder altid på en søndag. Af de øvrige lander 2. juledag 2026 på en lørdag, juledag og 2. juledag 2027 på en lørdag og en søndag, og nytårsdag 2028 på en lørdag.

Helligdagene og reglerne bag dem

Tabellen har årstallet i række 3 og påskedag i række 8. Alle bevægelige helligdage regnes ud fra påskedag:

Helligdag Regel Formel (kolonne B)
Nytårsdag 1. januar =DATO(B$3;1;1)
Skærtorsdag 3 dage før påskedag =B8-3
Langfredag 2 dage før påskedag =B8-2
Påskedag se næste afsnit
2. påskedag dagen efter påskedag =B8+1
Store bededag 26 dage efter påskedag, kun før 2024 =HVIS(B$4="ja";B8+26;"")
Kristi himmelfartsdag 39 dage efter påskedag =B8+39
Pinsedag 49 dage efter påskedag =B8+49
2. pinsedag 50 dage efter påskedag =B8+50
Juledag 25. december =DATO(B$3;12;25)
2. juledag 26. december =DATO(B$3;12;26)

Datoerne har talformatet ddd dd-mm-åååå, så Excel viser ugedagen foran datoen, som i tabellen ovenfor. Det gør det nemt at se, at skærtorsdag altid er en torsdag.

Dollartegnet i B$3 gør, at du kan kopiere formlerne mod højre til kolonne C og D, hvor årstallet er 2027 og 2028.

Påskedag med en formel, der virker i Excel på dansk

Påskedag følger en fast kirkelig beregning af forårets fuldmåne og den efterfølgende søndag. Den beregning kan skrives som ren heltalsregning. Formlen her bruger den såkaldte anonyme gregorianske algoritme (også kendt som Meeus/Jones/Butcher) og består kun af HELTAL (engelsk: INT), REST (engelsk: MOD) og DATO:

B8 =LET(år;B$3; a;REST(år;19); b;HELTAL(år/100); s;REST(år;100); d;HELTAL(b/4); e;REST(b;4); f;HELTAL((b+8)/25); g;HELTAL((b-f+1)/3); h;REST(19*a+b-d-g+15;30); i;HELTAL(s/4); u;REST(s;4); l;REST(32+2*e+2*i-h-u;7); m;HELTAL((a+11*h+22*l)/451); DATO(år;3;22+h+l-7*m))
Påskedag for årstallet i B3. Linjeskiftene er en del af formlen og kan kopieres med.

Du behøver ikke forstå hvert trin. a er årets plads i månens 19-årige cyklus, h finder fuldmånen, og l tæller frem til søndagen. Til sidst lægger DATO dagene til 22. marts. Bliver tallet større end 31, ruller DATO selv over i april.

LET giver mellemresultaterne navne, så formlen kan læses, og du kun skal henvise til årstallet ét sted.

Kontrolleret for 1950–2100

Vi har beregnet påskedag i Excel for alle 151 år fra 1950 til 2100 og sammenlignet med en uafhængig beregning i Python, der bruger en anden metode (Knuths udgave af den gregorianske påskeberegning). Resultat: 0 afvigelser, både for LET-formlen og for udgaven med hjælpekolonner i eksempelfilen.

Derfor giver mange påskeformler fra nettet forkerte datoer

En udbredt påskeformel fra engelske sider bygger en tekst som "5/13/2026" og lader Excel læse den som en dato. På dansk ser den sådan ud:

B2 =AFRUND.GULV("5/"&DAG(MINUT(A2/38)/2+56)&"/"&A2;7)-34

Formlen regner med, at "5/13/2026" bliver læst som 13. maj, altså måned først. Med danske datoindstillinger læser Excel dagen først. Vi har afprøvet det:

Formel Resultat i Excel på dansk
=DATOVÆRDI("5/13/2026") #VÆRDI! (der er ingen måned 13)
=DATOVÆRDI("5/12/2026") 05-12-2026 (5. december, ikke 12. maj)

For årene 1950–2100 gav formlen #VÆRDI! i 95 år og en forkert dato i 48 år. Kun 8 år blev rigtige, og ét af dem er 2024. Har du kun tjekket formlen på det år, ser den altså ud til at virke. For 2027 gav den 27-12-2026 i stedet for 28-03-2027.

En anden kendt formel bruger KR og teksten "4/"&år:

C2 =KR(("4/"&A2)/7+REST(19*REST(A2;19)-7;30)*14%;)*7-6

Den gav faktisk den rigtige dato i alle 151 år i vores test, fordi Excel på dansk læser "4/2026" som 01-04-2026. Men den afhænger stadig af, hvordan teksten tolkes. Microsoft skriver om DATOVÆRDI, at computerens datoindstillinger kan ændre resultatet. Vi kan ikke love, at den giver samme resultat på en computer med andre indstillinger. Formlen med HELTAL og REST indeholder ingen tekst og har ikke det problem.

Store bededag: med før 2024, ikke fra 2024

Store bededag er ikke længere en helligdag. Lov nr. 214 af 6. marts 2023 fastslår, at dagen skal behandles som en almindelig arbejdsdag, og loven trådte i kraft 1. januar 2024. Sidste gang store bededag var helligdag, var fredag 5. maj 2023.

I tabellen styres det af række 4:

B4 =HVIS(B3<2024;"ja";"nej")
Giver "ja" for år før 2024. Store bededag-rækken viser kun en dato, når der står "ja".

Sådan ser det ud, når du skriver 2022 som første år (arket Før og efter 2024 i filen):

Række Helligdag 2022 2023 2024
4 Medtag store bededag (ja/nej) ja ja nej
8 Påskedag sø 17-04-2022 sø 09-04-2023 sø 31-03-2024
10 Store bededag fr 13-05-2022 fr 05-05-2023 (tom)
11 Kristi himmelfartsdag to 26-05-2022 to 18-05-2023 to 09-05-2024

Rækken er et almindeligt felt, som du kan overskrive med “ja” eller “nej”. Det kan blive relevant. Status pr. 17. september 2026: I regeringsgrundlaget fra juni 2026 skriver regeringen, at den vil genindføre store bededag som helligdag fra 2030, hvis beskæftigelsen først er steget tilsvarende, og at den vil fremsætte et lovforslag i 2027. Det er ikke vedtaget. Indtil loven eventuelt ændres, er store bededag en arbejdsdag.

Dage, der ikke er helligdage, men ofte er fridage

Fire dage bliver tit blandet sammen med helligdagene. Ifølge borger.dk er 1. maj, grundlovsdag (5. juni), juleaftensdag og nytårsaftensdag ikke helligdage i Danmark.

Mange har alligevel helt eller delvis fri de dage, men det følger af overenskomster, ansættelseskontrakter eller aftaler på arbejdspladsen, og det varierer. Om du skal regne en af dagene som fridag, afhænger af, hvad der gælder for dig. Denne guide er ikke juridisk rådgivning.

Eksempelfilen har de fire dage i en separat blok (række 18–21), som ikke indgår i helligdagslisten:

Dag 2026 2027 2028
1. maj fr 01-05-2026 lø 01-05-2027 ma 01-05-2028
Grundlovsdag fr 05-06-2026 lø 05-06-2027 ma 05-06-2028
Juleaftensdag to 24-12-2026 fr 24-12-2027 sø 24-12-2028
Nytårsaftensdag to 31-12-2026 fr 31-12-2027 sø 31-12-2028

Har I fri nogle af dagene, kan du lægge dem til som ekstra lukkedage, når du tæller arbejdsdage. Det er vist i guiden om arbejdsdage med danske helligdage.

Brug tabellen i arbejdsdagsformler

Her er en fælde, vi selv løb ind i. Rækken med store bededag indeholder tom tekst ("") for år fra 2024. Tom tekst er ikke det samme som en tom celle, og ANTAL.ARBEJDSDAGE.INTL (engelsk: NETWORKDAYS.INTL) accepterer den ikke:

=ANTAL.ARBEJDSDAGE.INTL(DATO(Helligdage!B3;1;1);DATO(Helligdage!B3;12;31);1;Helligdage!B5:B15)
Resultat: #VÆRDI!

Derfor samler eksempelfilen alle datoer fra de tre år i én liste i F4, hvor alt, der ikke er et tal, er filtreret fra:

F4 =LET(d;TILKOLONNE(B5:D15);SORTER(FILTRER(d;ER.TAL(d))))
TILKOLONNE lægger tabellen i én kolonne, FILTRER beholder kun datoer, og SORTER sætter dem i rækkefølge.

Formlen “spilder” ned over 30 celler (11 helligdage i 2026–2028 minus tre tomme store bededage). Listen bruger du med # efter cellen:

=ANTAL.ARBEJDSDAGE.INTL(DATO(Helligdage!B3;1;1);DATO(Helligdage!B3;12;31);1;Helligdage!F4#)
Resultat: 254 arbejdsdage i 2026.

De 254 dage passer med en optælling i Python af hverdage i 2026 uden de helligdage, der falder på en hverdag. Vil du bare vide, om en dato er en helligdag, kan du bruge =TÆL.HVIS(Helligdage!F4#;DATO(2026;4;6))>0, som giver SAND for 2. påskedag.

Hvis du vil have flere år

Tabellen viser tre år, fordi mange opgaver krydser et årsskifte, fx en frist, der løber hen over jul og nytår. Skal du bruge flere år, så kopiér kolonne D mod højre og ret området i F4, fx til B5:F15. Dollartegnene sørger for, at formlerne regner med det nye årstal.

Er du i gang med en vagtplan eller et timeark, kan du bruge samme liste til at markere helligdage med betinget formatering eller som opslag ved siden af ugenumre. Ligger vagterne hen over døgnskiftet, står selve timeberegningen i guiden om timeregistrering over midnat.

Kommer datoerne fra en import i stedet for fra formlerne her, så tjek først, om det er datoer, der er gemt som tekst. Helligdagsformlerne kan kun regne med rigtige datoer.