Alder i hele år ud fra en fødselsdato beregner du med DATO.FORSKEL (engelsk: DATEDIF):
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:
| Række | A | B | C | D | E | F |
|---|---|---|---|---|---|---|
| 1 | Fødselsdato | Beregningsdato | DATO.FORSKEL | Uden DATO.FORSKEL | ÅR.BRØK basis 1 | ÅR.BRØK basis 0 |
| 2 | 15-05-1990 | 14-05-2026 | 35 | 35 | 35 | 35 |
| 3 | 15-05-1990 | 15-05-2026 | 36 | 36 | 36 | 36 |
| 4 | 29-02-2004 | 28-02-2025 | 20 | 20 | 20 | 21 |
| 5 | 29-02-2004 | 01-03-2025 | 21 | 21 | 21 | 21 |
| 6 | 29-02-2004 | 29-02-2028 | 24 | 24 | 23 | 24 |
| 7 | 28-02-2000 | 27-02-2026 | 25 | 25 | 25 | 25 |
| 8 | 29-02-1988 | 28-02-2026 | 37 | 37 | 37 | 38 |
| 9 | 01-03-1996 | 28-02-2026 | 29 | 29 | 29 | 29 |
| 10 | 01-03-2012 | 28-02-2026 | 13 | 13 | 13 | 13 |
| 11 | 01-01-1970 | 31-12-2026 | 56 | 56 | 56 | 57 |
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
HELTALviste 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:
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:
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:
| Række | A | B | C | D | E | F |
|---|---|---|---|---|---|---|
| 1 | Ansat | Opgørelsesdato | Hele år | Måneder ud over år | Anciennitet | Måneder i alt |
| 2 | 01-08-2019 | 16-09-2026 | 7 | 1 | 7 år og 1 mdr. | 85 |
| 3 | 15-11-2024 | 16-09-2026 | 1 | 10 | 1 år og 10 mdr. | 22 |
| 4 | 31-01-2026 | 01-03-2026 | 0 | 1 | 0 år og 1 mdr. | 1 |
| 5 | 16-09-2021 | 16-09-2026 | 5 | 0 | 5 år og 0 mdr. | 60 |
| 6 | 20-10-2025 | 16-09-2026 | 0 | 10 | 0 år og 10 mdr. | 10 |
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:
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:
Kommer datoerne fra et HR- eller lønsystem, og giver formlerne #VÆRDI!, er datoerne sandsynligvis tekst. Se tekstdatoer, der ikke regner.