Formule calcul âge Excel : comment éviter les âges faux au 31 décembre ?

On prépare un reporting RH en décembre, on lance la formule d’âge, et un salarié né le 15 décembre apparaît avec un an de plus alors que son anniversaire n’est pas encore passé. Le fichier part en validation avec des données fausses. Ce bug revient chaque fin d’année dans les fichiers Excel qui utilisent une simple soustraction d’années, et il fausse aussi bien les pyramides des âges que les calculs d’ancienneté.

Pourquoi la soustraction ANNEE() produit un âge faux en fin d’année

La formule la plus répandue pour calculer un âge dans Excel ressemble à ceci : =ANNEE(AUJOURDHUI())-ANNEE(A2). Elle soustrait l’année de naissance de l’année en cours. Le résultat semble correct la plupart du temps, mais il ignore complètement le mois et le jour de naissance.

Lire également : Pourquoi éviter OneDrive pour stockage de fichiers sur le cloud ?

Prenons un cas concret. On est le 2 décembre 2024, et la cellule A2 contient la date 20/12/1990. La formule renvoie 2024-1990 = 34 ans. La personne n’a pourtant que 33 ans, puisque son anniversaire tombe le 20 décembre, soit 18 jours plus tard.

Le problème s’aggrave quand on travaille sur des centaines de lignes. Dans un fichier de suivi du personnel, tous les salariés nés après la date du jour dans l’année civile se retrouvent vieillis d’un an. Sur une pyramide des âges produite au 31 décembre pour la GPEC, une part significative des effectifs bascule dans la mauvaise tranche d’âge.

A lire aussi : Pourquoi maîtriser Excel ?

Homme analysant une formule DATEDIF dans Excel avec un calendrier du 31 décembre posé à côté

DATEDIF avec AUJOURDHUI() : la formule calcul âge Excel fiable

La fonction DATEDIF reste la solution la plus directe pour obtenir un âge exact en années révolues. Sa syntaxe dans une cellule :

=DATEDIF(A2;AUJOURDHUI(); »y »)

Le paramètre « y » renvoie le nombre d’années complètes entre la date de naissance (A2) et la date du jour. DATEDIF ne compte une année supplémentaire que lorsque le jour anniversaire est effectivement passé. Au 2 décembre 2024, pour une naissance le 20/12/1990, elle renvoie bien 33.

Pourquoi DATEDIF n’apparaît pas dans l’autocomplétion

DATEDIF est une fonction non documentée dans l’interface Excel : elle ne s’affiche pas quand on commence à taper son nom dans la barre de formule. Elle fonctionne pourtant dans toutes les versions récentes d’Excel pour Windows et sur le web. Il faut simplement la saisir manuellement.

Obtenir l’âge en années, mois et jours

Pour un calcul plus détaillé (utile en paie ou en gestion d’ancienneté), on combine plusieurs appels DATEDIF dans la même cellule :

  • Années complètes : =DATEDIF(A2;AUJOURDHUI(); »y »)
  • Mois restants après les années : =DATEDIF(A2;AUJOURDHUI(); »ym »)
  • Jours restants après les mois : =DATEDIF(A2;AUJOURDHUI(); »md »)

On peut concaténer le tout dans une seule formule avec l’opérateur & pour afficher « 33 ans, 11 mois, 12 jours » dans une cellule. Ce niveau de détail évite les arrondis trompeurs dans les tableaux d’ancienneté.

Calcul d’âge à une date de référence fixe (31 décembre, 1er janvier)

Dans les analyses RH type pyramide des âges ou projection de départs à la retraite, on ne calcule pas l’âge « aujourd’hui » mais à une date précise. Les consultants RH recommandent de baser les tranches d’âge sur la date de référence de l’étude, souvent le 31 décembre de l’année N.

La formule devient :

=DATEDIF(A2;DATE(2024;12;31); »y »)

On remplace AUJOURDHUI() par une date fixe construite avec la fonction DATE. L’avantage : le résultat ne change pas quand on rouvre le fichier trois mois plus tard. Le tableau reflète exactement la situation au 31 décembre, quel que soit le jour où on le consulte.

Relier la date de référence à une cellule unique

Plutôt que de coder la date en dur dans chaque formule, on place la date de référence dans une cellule dédiée (par exemple E1) et on y fait référence :

=DATEDIF(A2;$E$1; »y »)

Le dollar ($) verrouille la référence. On peut ainsi changer la date d’observation en une seule manipulation et recalculer instantanément l’âge de tout le fichier. C’est la méthode à privilégier quand le tableau alimente un reporting mis à jour chaque trimestre ou chaque fin d’année.

Vue de dessus d'un tableau Excel imprimé avec des calculs d'âge corrigés au stylo pour le 31 décembre

Erreurs fréquentes et pièges de format dans le calcul d’âge Excel

Même avec DATEDIF, certains fichiers continuent de produire des résultats aberrants. Les causes sont presque toujours liées au format des données en amont.

  • Dates stockées en texte : si la colonne de naissance est au format Texte, DATEDIF renvoie une erreur #VALEUR!. On vérifie en sélectionnant la cellule : si l’alignement par défaut est à gauche, c’est du texte. La correction passe par un reformatage en Date suivi d’un collage spécial ou par la fonction DATEVAL.
  • Inversion jour/mois : un fichier importé depuis un système anglophone peut interpréter 03/07/1985 comme le 7 mars au lieu du 3 juillet. Le calcul d’âge sera décalé de quatre mois sans message d’erreur visible.
  • Cellule au format Nombre au lieu de Nombre entier : DATEDIF renvoie un entier, mais si la cellule de résultat est formatée avec des décimales ou en Date, l’affichage devient illisible. Appliquer le format Nombre sans décimale.
  • Dates futures dans la colonne source : une date de naissance saisie en 2025 au lieu de 1925 passe inaperçue et produit un âge négatif ou une erreur. Un contrôle rapide avec =SI(A2>AUJOURDHUI(); »vérifier »; » ») dans une colonne auxiliaire permet de repérer ces anomalies.

Alternative sans DATEDIF : la formule avec ENT et FRACTION.ANNEE

Certains fichiers partagés entre Excel et d’autres tableurs (LibreOffice, Google Sheets) gagnent à utiliser une formule qui ne dépend pas de DATEDIF. La combinaison ENT + FRACTION.ANNEE fonctionne partout :

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

FRACTION.ANNEE calcule la fraction d’année écoulée entre deux dates, et ENT tronque le résultat à l’entier inférieur. Le comportement est identique à DATEDIF avec le paramètre « y » : l’âge n’augmente qu’après le jour anniversaire.

Les retours varient sur la précision de FRACTION.ANNEE selon la base de calcul utilisée (le second argument optionnel). En pratique, la base par défaut (0, soit 30 jours/mois) donne un résultat correct pour le calcul d’âge en années entières. Pour un besoin de précision au jour près, DATEDIF reste plus lisible.

Le choix entre ces deux approches dépend surtout du contexte de partage du fichier. Si le classeur reste dans Excel, DATEDIF suffit. S’il transite entre plusieurs applications, ENT(FRACTION.ANNEE()) offre une meilleure compatibilité.

Quelques actus

Le Samsung Galaxy A90 serait la première d’une caméra jamais vue auparavant dans Samsung

Samsung ne s'arrête pas. Après avoir présenté le nouveau Samsung Galaxy S10 et lancé les Samsung Galaxy A30

Pourquoi choisir UX Design ?

Le monde du numérique impose l’utilisation du processus de l’UX Design. Tous les webdesigners doivent prendre cet élément