Excel-hjælp til de små opgaver

Beregn alder i Excel ud fra en fødselsdato med DATO.FORSKEL

Beregn alder i hele år ud fra en fødselsdato i Excel med DATO.FORSKEL (DATEDIF). Også alder i år og måneder og ud fra et CPR-nummer. Med øvelse.

Af Nicolaj, stifter af ExcelOpgaver · · 4 min. læsning

Vil du beregne alder i Excel, så brug =DATO.FORSKEL(B2;IDAG();"y"). Formlen giver alderen i hele år ud fra en fødselsdato i B2. Funktionen hedder DATEDIF på engelsk, og den er skjult: Excel foreslår den ikke, når du skriver, men den virker. Siden her viser også alder i år og måneder og alder ud fra et CPR-nummer.

Beregn alder i Excel med DATO.FORSKEL: den skjulte funktion

DATO.FORSKEL tager tre ting: startdatoen, slutdatoen og en enhed i anførselstegn. Til alder er startdatoen fødselsdatoen, og slutdatoen er den dag, du vil regne alderen pr. Enheden "y" giver hele år:

C2=DATO.FORSKEL(B2;$E$1;"y")
ABCDE
1NavnFødselsdatoAlderPr. dato01-01-2026
2Dina12-09-198540

Dina er født 12. september 1985. Pr. 1. januar 2026 er hun fyldt 40, for hendes 41-års fødselsdag kommer først i september.

Dollartegnene om E1 sørger for, at formlen altid peger på den samme dato, også når du kopierer den ned. Funktionen tæller kun fuldt gennemløbne år. Er fødselsdagen ikke nået endnu, tæller det nye år ikke med, og det er netop, hvad man vil have til en alder. Du skal skrive funktionsnavnet helt ud, for det kommer ikke frem som forslag, når du begynder at skrive.

Der er flere enheder at vælge imellem:

EnhedGiver
"y"Hele år
"m"Hele måneder
"d"Dage
"ym"Måneder ud over de hele år
"md"Dage ud over de hele måneder

Enheden "md" kan give forkerte svar i nogle tilfælde, så undgå den. De øvrige er til at stole på.

Prøv selv. Tre personer har hver en fødselsdato, og alderen skal regnes pr. 1. januar 2026:

Prøv selv

Alder pr. 1. januar 2026

Skriv i C2 en formel, der giver alderen i hele år pr. datoen i E1. Den skal kunne kopieres ned.

C2
ABCDEF
1Navn Fødselsdato Alder Pr. dato 01-01-2026
2Anna 15-05-1990
3Bo 01-01-2000
4Cem 31-12-2010
5
6
7
8

Klik i C2, og skriv din formel.

Bo fylder år netop 1. januar og er derfor 26, og Cem fyldte 15 dagen før og er altså 15. Opgaven Regn en alder ud med DATO.FORSKEL træner den samme formel på andre fødselsdatoer.

Alder i dag eller på en bestemt dato

Skriver du IDAG (TODAY) som slutdato, regner Excel alderen pr. dagens dato, og tallet opdaterer sig hver dag, du åbner arket. Det er praktisk i en medlemsliste, hvor alderen skal være aktuel. Det er til gengæld uheldigt i en rapport, som skal vise alderen, som den var på en bestemt dag, for så ændrer tallene sig, når du åbner filen senere.

Brug i stedet en fast dato i en celle, som i øvelsen ovenfor, og peg på den med dollartegn. Så kan du rette datoen ét sted og se alle aldre skifte på én gang.

Alder i år og måneder

Vil du have alderen som tekst, fx 40 år og 3 måneder, bruger du DATO.FORSKEL to gange og sætter svarene sammen med tegnet &. Første gang med "y" til årene, anden gang med "ym" til månederne ud over de hele år:

C2=DATO.FORSKEL(B2;$E$1;"y")&" år og "&DATO.FORSKEL(B2;$E$1;"ym")&" måneder"
ABCDE
1NavnFødselsdatoAlderPr. dato01-01-2026
2Dina12-09-198540 år og 3 måneder

Med ym får du månederne ud over de hele år. Pr. 1. januar 2026 er Dina 40 år og 3 måneder, og teksten sættes sammen med &.

Prøv selv. Formlen er lidt lang, så tag den i to trin:

Prøv selv

Alder i år og måneder

Skriv i C2 en formel, der giver alderen som tekst, fx 35 år og 7 måneder, pr. datoen i E1. Den skal kunne kopieres ned.

C2
ABCDEF
1Navn Fødselsdato Alder Pr. dato 01-01-2026
2Anna 15-05-1990
3Bo 01-01-2000
4Cem 31-12-2010
5
6
7
8

Klik i C2, og skriv din formel.

Opgaven Anciennitet i år og måneder som tekst viser den samme idé på en lidt anden tabel. Hvordan du sætter tekst og tal sammen, står på siden om at sætte tekst sammen i Excel.

Hvorfor ikke bare trække årstallene fra eller dele med 365?

Det er fristende at skrive =ÅR(IDAG())-ÅR(B2). Formlen trækker årstallene fra hinanden, og den er forkert hele året, indtil fødselsdagen er nået. Dina er født i september 1985. I januar 2026 er hun 40, men årstalsformlen siger 41:

C2=ÅR($E$1)-ÅR(B2)
ABCDE
1NavnFødselsdatoAlderPr. dato01-01-2026
2Dina12-09-198541

Trækker du bare årstallene fra hinanden, får Dina alderen 41. Det er forkert, for hun har ikke haft fødselsdag i 2026 endnu.

Den anden idé er at dele antal dage med 365. Den kan virke, men skuddage gør, at året i gennemsnit er lidt længere end 365 dage. Omkring fødselsdagen kan resultatet derfor være en dag eller to forkert. Her fylder personen 36 om fem dage, men formlen siger 36 allerede nu:

C2=HELTAL((B2-A2)/365)
ABC
1FødselsdatoDatoAlder
225-12-198920-12-202536

Personen er født 25. december 1989 og fylder 36 om fem dage. Dividerer du dagene med 365 og tager heltallet, får du alligevel 36.

DATO.FORSKEL regner kalenderen rigtigt og giver 35:

C2=DATO.FORSKEL(A2;B2;"y")
ABC
1FødselsdatoDatoAlder
225-12-198920-12-202535

DATO.FORSKEL tæller hele år og svarer 35. Skuddage er regnet med, så den er rigtig lige omkring fødselsdagen.

Der findes også en funktion, ÅR.BRØK (YEARFRAC), som giver alderen med decimaler. Den er god til at regne på brøkdele af et år, men ikke til en alder i hele år, for den kan runde forkert lige omkring fødselsdagen. Til alder er DATO.FORSKEL det sikre valg.

Alder ud fra et CPR-nummer

Har du kun CPR-numre i arket, kan du få fødselsdatoen ud af dem. De første seks cifre er dag, måned og år uden århundrede. Funktionen DATO (DATE) samler de tre dele til en rigtig dato, og MIDT (MID) og VENSTRE tager delene ud af teksten. Eksemplet bruger et opdigtet nummer, hvor personen er født i 1900-tallet:

B2=DATO(1900+MIDT(A2;5;2);MIDT(A2;3;2);VENSTRE(A2;2))
AB
1CPRFødselsdato
2150590-123415-05-1990

De første seks cifre er dag, måned og år. DATO samler dem til en rigtig dato: 15. maj 1990. Nummeret er opdigtet.

Århundredet er det svære. Det står ikke i de seks første cifre. På cpr.dk står det, at kombinationen af ciffer 5, 6 og 7 afgør det, altså årstallet og det første af de fire sidste cifre. Er personen født i 2000-tallet, skal du lægge 2000 til i stedet for 1900:

B2=DATO(2000+MIDT(A2;5;2);MIDT(A2;3;2);VENSTRE(A2;2))
AB
1CPRFødselsdato
2010510-567801-05-2010

Er personen født i 2000-tallet, lægger du 2000 til årstallet i stedet. Det giver 1. maj 2010. Nummeret er opdigtet.

For en liste, hvor alle er født i 1900-tallet, er 1900+ nok. Er listen blandet, skal formlen tjekke det syvende ciffer sammen med årstallet. Reglen står på cpr.dk i beskrivelsen af personnummerets opbygning, og den er skrevet ud i tabellen her:

7. cifferÅr 00–36År 37–57År 58–99
0, 1, 2 og 31900-tallet1900-tallet1900-tallet
4 og 92000-tallet1900-tallet1900-tallet
5, 6, 7 og 82000-tallet2000-tallet1800-tallet

Når fødselsdatoen er på plads, kan du sætte hele udtrykket ind i DATO.FORSKEL og få alderen i ét trin:

B2=DATO.FORSKEL(DATO(1900+MIDT(A2;5;2);MIDT(A2;3;2);VENSTRE(A2;2));$E$1;"y")
ABCDE
1CPRAlderPr. dato01-01-2026
2150590-123435

DATO samler fødselsdatoen, og DATO.FORSKEL regner alderen pr. 1. januar 2026. Nummeret er opdigtet.

Brug aldrig rigtige CPR-numre i eksempler, og lad være med at dele ark med rigtige numre. Eksemplerne her er opdigtede.

Prøv det i en opgave

Alder er en af de datoberegninger, som kommer igen og igen, i medlemslister, elevlister og personalefiler. Prøv opgaven Regn en alder ud med DATO.FORSKEL gratis. Du skriver formlen selv, og den bliver rettet med det samme. Skal du regne dage mellem to datoer i stedet, står det på siden om dage mellem to datoer i Excel. Flere datoformler står i guiden Datoer i Excel.

Nicolaj

Om forfatteren

Nicolaj, stifter af ExcelOpgaver

Jeg er softwareudvikler og har bygget ExcelOpgaver fra bunden, også selve regnearket og den motor der regner formlerne ud. For at få det til at virke har jeg skullet forstå hver funktion helt ned i detaljen: hvordan LOPSLAG opfører sig når koden har et mellemrum for meget, hvorfor en dato i virkeligheden er et tal, og hvornår AFRUND giver et andet svar end talformatet.

Mere om Nicolaj

Øv det i opgaver

Opgaver i et rigtigt regneark, der bliver rettet med det samme.

Funktionssider

Ofte stillede spørgsmål

Hvad hedder DATEDIF på dansk?

DATO.FORSKEL. Funktionen tager en startdato, en slutdato og en enhed, fx "y" for hele år.

Hvorfor kan jeg ikke finde DATO.FORSKEL i Excel?

Den står ikke i Excels forslagsliste, men den virker, når du skriver den helt ud.

Hvordan beregner jeg alder i år og måneder?

Brug DATO.FORSKEL to gange, en gang med "y" og en gang med "ym", og sæt resultaterne sammen med &.

Kan jeg beregne alder ud fra et CPR-nummer?

Ja. De første seks cifre er dag, måned og år, og DATO kan samle dem til en dato. Brug kun opdigtede numre i eksempler.

Se også