Calculer un âge ou une ancienneté dans Excel (cas RH)

« Combien d'années Pierre a-t-il dans l'entreprise ? Quel âge a Marie au 31 décembre ? Combien de jours reste-t-il avant la retraite ? » Ces questions reviennent en permanence en RH, en paie, en gestion de contrats. Excel offre plusieurs fonctions de calcul d'écart entre deux dates — chacune avec ses spécificités. Voici comment toujours obtenir le résultat correct.

Années (Y) 38 ans révolus DATEDIF(...; "Y") Mois (M) 462 mois écoulés DATEDIF(...; "M") Jours (D) 14063 jours calendaires DATEDIF(...; "D")
La même différence entre deux dates, exprimée selon trois unités. DATEDIF permet aussi des combinaisons (« YM », « MD », « YD »).

La fonction reine : DATEDIF

Bizarre, mais vraie : DATEDIF existe dans Excel depuis 1995 et fonctionne dans toutes les versions, mais Microsoft ne la documente plus et elle n'apparaît pas dans l'auto-complétion. Vous devez la taper en entier — mais elle reste la formule la plus précise pour ce besoin.

Syntaxe

=DATEDIF(date_début; date_fin; "unité")

Le 3e argument détermine l'unité du résultat :

UnitéDescriptionExemple
"Y"années complètes entre les deux dates=DATEDIF("01/01/1990"; "15/03/2025"; "Y")35
"M"mois complets… "M"422
"D"jours calendaires… "D"12 856
"YM"mois restants après les années (0 à 11)… "YM"2 (mois en plus des 35 ans)
"MD"jours restants après les mois (0 à 30)… "MD"14
"YD"jours restants après les années… "YD"73

Calcul de l'âge en années révolues

La formule canonique :

=DATEDIF(A2; AUJOURDHUI(); "Y")

A2 contient la date de naissance. Le résultat est l'âge en années complètes (anniversaire passé = +1). AUJOURDHUI() est volatile : la formule se met à jour automatiquement chaque jour.

Variante : âge au 31 décembre de cette année

Pour anticiper l'âge en fin d'année (utile pour calculer un quotient familial fiscal, par exemple) :

=DATEDIF(A2; DATE(ANNEE(AUJOURDHUI()); 12; 31); "Y")

Variante : âge à une date précise

Pour l'âge au moment d'un événement (embauche, contrat) :

=DATEDIF(A2; B2; "Y") où B2 est la date d'événement.

Calcul d'ancienneté « X ans, Y mois »

Format très demandé en RH. Combiner deux DATEDIF :

=DATEDIF(A2; AUJOURDHUI(); "Y") & " ans, " & DATEDIF(A2; AUJOURDHUI(); "YM") & " mois"

Exemple : « 12 ans, 7 mois ». Lisible dans une fiche de poste, un avenant, un bilan social.

Version « X ans, Y mois, Z jours »

=DATEDIF(A2;AUJOURDHUI();"Y") & " ans, " & DATEDIF(A2;AUJOURDHUI();"YM") & " mois, " & DATEDIF(A2;AUJOURDHUI();"MD") & " jours"

Singulier / pluriel propre

Pour éviter « 1 ans, 1 mois » au lieu de « 1 an, 1 mois », encapsulez avec un SI :

=DATEDIF(A2;AUJOURDHUI();"Y") & SI(DATEDIF(A2;AUJOURDHUI();"Y")>1;" ans";" an")

Calcul d'ancienneté en fraction d'année

Quand vous calculez une prime au prorata, vous voulez 5,42 ans (5 ans et demi) plutôt que 5. Utilisez FRACTION.ANNEE :

=FRACTION.ANNEE(A2; AUJOURDHUI(); 1)

Le 3e argument (« base ») définit le mode de calcul :

  • 0 (défaut, US 30/360)
  • 1 nombre réel de jours / nombre réel de jours dans l'année (le plus précis)
  • 2 réel / 360
  • 3 réel / 365
  • 4 30E/360 européen

Pour de la paie / RH, base 1 est la valeur recommandée.

Calcul d'ancienneté en jours ouvrés

Si vous voulez le nombre de jours travaillés (hors week-ends et jours fériés) :

=NB.JOURS.OUVRES(A2; AUJOURDHUI(); ListeFeries)

ListeFeries est une plage contenant les jours fériés. La fonction NB.JOURS.OUVRES.INTL permet en plus de personnaliser les jours du week-end (utile pour les pays où le week-end n'est pas samedi-dimanche).

Cas RH : prime d'ancienneté en paliers

Vous attribuez une prime selon l'ancienneté :

  • 0–2 ans → 0 €
  • 2–5 ans → 50 €
  • 5–10 ans → 100 €
  • 10 ans+ → 200 €

Avec SI.CONDITIONS (Excel 2019+) :

=SI.CONDITIONS(B2>=10;200; B2>=5;100; B2>=2;50; VRAI;0)

Où B2 contient l'ancienneté en années calculée par DATEDIF.

Cas RH : alerter sur les anniversaires de cette semaine

Une mise en forme conditionnelle simple. Sélectionnez la colonne « Date naissance », nouvelle règle avec formule :

=NUMERO.SEMAINE(DATE(ANNEE(AUJOURDHUI()); MOIS(A2); JOUR(A2))) = NUMERO.SEMAINE(AUJOURDHUI())

Couleur de fond verte. Les anniversaires de la semaine apparaissent surlignés.

Cas RH : départ en retraite à 64 ans

Calculer la date prévue de départ et le nombre de jours restants :

  • Date de retraite : =DATE(ANNEE(A2)+64; MOIS(A2); JOUR(A2))
  • Jours restants : =B2-AUJOURDHUI() (B2 = date de retraite)
  • Statut : =SI(C2<0; "Retraité"; SI(C2<365; "Bientôt"; "Actif"))

Pièges classiques

Date en texte au lieu de date

Si vos dates ressemblent à des dates mais sont en réalité du texte (collées d'un PDF par exemple), DATEDIF renvoie #VALEUR!. Solution : =CNUM(A2) ou =DATEVAL(A2) pour convertir.

DATEDIF avec date_début > date_fin

Renvoie #NOMBRE!. Encapsulez : =SI(B2<A2; ""; DATEDIF(A2; B2; "Y")).

"YM" et "MD" bugs avant Excel 2010

Certaines combinaisons (notamment "MD") renvoient parfois des résultats erronés à cause d'un bug historique. Si précision critique, vérifiez le résultat manuellement ou préférez un calcul personnalisé.

Bonne pratique RH : stockez les dates au format date réel (jamais en texte). Configurez le format d'affichage français (jj/mm/aaaa) dans Format de cellule. Ne mélangez jamais les deux dans une même colonne.

À retenir

  • DATEDIF est la formule incontournable pour calculer un âge ou une ancienneté.
  • Tapez-la en entier : elle n'apparaît pas dans l'auto-complétion.
  • Unités principales : "Y" (années), "M" (mois), "D" (jours). Combinées : "YM", "MD".
  • Pour la fraction d'année (calcul de prime au prorata) : FRACTION.ANNEE avec base 1.
  • Pour les jours ouvrés : NB.JOURS.OUVRES.
  • Combinez avec SI.CONDITIONS pour des grilles de prime par paliers.