Alder i hele år ud fra en fødselsdato beregner du med DATO.FORSKEL (engelsk: DATEDIF):

C2 =DATO.FORSKEL(A2;B2;"y")
Antal hele år fra fødselsdatoen i A2 til datoen i B2.

Skal alderen være i dag, så brug IDAG() som slutdato: =DATO.FORSKEL(A2;IDAG();"y"). Til anciennitet bruger du samme funktion med andre enheder, fx "ym" for de måneder, der er tilovers ud over hele år.

DATO.FORSKEL: en gammel funktion, der stadig virker

Microsoft skriver, at Excel har DATO.FORSKEL for at understøtte ældre projektmapper fra Lotus 1-2-3, og at funktionen i visse situationer kan give forkerte resultater. Den er dokumenteret på Microsofts side med disse enheder:

Enhed Giver
"y" hele år
"m" hele måneder
"d" dage
"ym" måneder ud over hele år
"yd" dage ud over hele år
"md" dage ud over hele måneder (Microsoft fraråder den)

Startdatoen skal komme først. Byttede vi om på datoerne, gav =DATO.FORSKEL(B2;A2;"y") fejlen #NUMMER! (engelsk: #NUM!).

Alder: DATO.FORSKEL mod ÅR.BRØK

En udbredt metode er =HELTAL(ÅR.BRØK(A2;B2)). ÅR.BRØK (engelsk: YEARFRAC) er lavet til renteberegning og regner med standardiserede årslængder. Omkring fødselsdagen kan det give et forkert helt år. Vi har sammenlignet metoderne på de datoer, hvor det typisk går galt:

Arket Alder. D er en formel uden DATO.FORSKEL (se nedenfor). E og F er ÅR.BRØK med basis 1 og 0, rundet ned med HELTAL.
Række ABCDEF
1 Fødselsdato Beregningsdato DATO.FORSKEL Uden DATO.FORSKEL ÅR.BRØK basis 1 ÅR.BRØK basis 0
2 15-05-199014-05-202635353535
3 15-05-199015-05-202636363636
4 29-02-200428-02-202520202021
5 29-02-200401-03-202521212121
6 29-02-200429-02-202824242324
7 28-02-200027-02-202625252525
8 29-02-198828-02-202637373738
9 01-03-199628-02-202629292929
10 01-03-201228-02-202613131313
11 01-01-197031-12-202656565657
Arket Alder. D er en formel uden DATO.FORSKEL (se nedenfor). E og F er ÅR.BRØK med basis 1 og 0, rundet ned med HELTAL.

De markerede celler er forkerte:

  • Basis 0 (standard, når du udelader argumentet) regner med 30 dage i hver måned og gav et år for meget i tre tilfælde, bl.a. for 01-01-1970 til 31-12-2026, hvor personen først fylder 57 dagen efter.
  • Basis 1 (faktiske dage) gav 23 i stedet for 24 på selve fødselsdagen 29-02-2028. Uden HELTAL viste Excel 23,9980.

Microsoft skriver selv på siden om ÅR.BRØK, at funktionen kan give forkerte resultater med basis 0, når startdatoen er den sidste dag i februar. Til alder er DATO.FORSKEL det sikre valg.

Uden DATO.FORSKEL

Vil du helst undgå en funktion, som Microsoft selv advarer om, kan du regne alderen ud med almindelige datofunktioner:

D2 =ÅR(B2)-ÅR(A2)-(DATO(ÅR(B2);MÅNED(A2);DAG(A2))>B2)

Den tager forskellen i årstal og trækker 1 fra, hvis fødselsdagen i beregningsåret endnu ikke er nået. Den gav samme resultat som DATO.FORSKEL i alle ti rækker.

Født 29. februar

I år, der ikke er skudår, regner både DATO.FORSKEL og formlen ovenfor en person født 29. februar for et år ældre 1. marts. Den 28. februar 2025 er personen fra rækken ovenfor stadig 20 og bliver 21 den 1. marts.

Forklaringen i den manuelle formel er, at =DATO(2025;2;29) ikke giver en fejl, men ruller videre til 01-03-2025.

Skal din opgørelse bruge 28. februar i stedet, fx fordi det står i en aftale eller et regelsæt, du skal følge, så er det en beslutning, Excel ikke kan træffe for dig. Tjek, hvad der gælder.

Anciennitet i år og måneder

Til anciennitet kombinerer du hele år med de resterende måneder:

E2 =DATO.FORSKEL(A2;B2;"y")&" år og "&DATO.FORSKEL(A2;B2;"ym")&" mdr."

Vi har brugt “mdr.” for at undgå “1 måneder”. Resultatet er tekst, så gem tallene i hver sin kolonne, hvis du skal sortere eller regne videre:

Arket Anciennitet med opgørelsesdato 16-09-2026 (række 4 bruger 01-03-2026).
Række ABCDEF
1 Ansat Opgørelsesdato Hele år Måneder ud over år Anciennitet Måneder i alt
2 01-08-201916-09-2026717 år og 1 mdr.85
3 15-11-202416-09-20261101 år og 10 mdr.22
4 31-01-202601-03-2026010 år og 1 mdr.1
5 16-09-202116-09-2026505 år og 0 mdr.60
6 20-10-202516-09-20260100 år og 10 mdr.10
Arket Anciennitet med opgørelsesdato 16-09-2026 (række 4 bruger 01-03-2026).

Dage ud over hele måneder: undgå “md”

Enheden "md" burde give de dage, der er tilovers ud over hele måneder. Microsoft skriver, at den kan give et negativt tal, nul eller et forkert resultat, og det så vi også: fra 31-01-2026 til 01-03-2026 gav =DATO.FORSKEL(A4;B4;"md") -2.

Regn i stedet dagene ud fra datoen, hvor den sidste hele måned slutter. EDATO (engelsk: EDATE) lægger et antal måneder til en dato:

H2 =B2-EDATO(A2;DATO.FORSKEL(A2;B2;"m"))
Formatér cellen som tal, ikke som dato.

For 31-01-2026 til 01-03-2026 gav den 1. Ved de andre ansættelser gav den samme tal som "md" (15, 1, 0 og 27). Samlet til én tekst:

I2 =DATO.FORSKEL(A2;B2;"y")&" år, "&DATO.FORSKEL(A2;B2;"ym")&" mdr. og "&B2-EDATO(A2;DATO.FORSKEL(A2;B2;"m"))&" dage"
Giver fx 7 år, 1 mdr. og 15 dage.

Kommer datoerne fra et HR- eller lønsystem, og giver formlerne #VÆRDI!, er datoerne sandsynligvis tekst. Se tekstdatoer, der ikke regner.