Formule Excel: obtenir l'âge de l'anniversaire -

Table des matières

Formule générique

=DATEDIF(birthdate,TODAY(),"y")

Sommaire

Pour calculer l'âge à partir d'une date de naissance, vous pouvez utiliser la fonction DATEDIF avec la fonction AUJOURD'HUI. Dans l'exemple illustré, la formule de la cellule E5, copiée vers le bas, est:

=DATEDIF(D5,TODAY(),"y")

Comme AUJOURD'HUI renvoie toujours la date actuelle, la formule continuera à calculer l'âge correct dans le futur.

Explication

La fonction DATEDIF (Date + Dif) est un peu une anomalie dans Excel. Une fonction de compatibilité qui provient à l'origine de Lotus 1-2-3, Excel n'aidera pas à fournir des arguments lorsque la fonction est entrée. Cependant, DATEDIF fonctionne dans toutes les versions modernes d'Excel et est une fonction utile pour calculer l'intervalle entre deux dates en années, mois et jours.

Dans l'exemple illustré, l'objectif est de calculer l'âge en années. La formule en E5 est:

=DATEDIF(D5,TODAY(),"y")

Les deux premiers arguments pour DATEDIF sont start_date et end_date. La date de début provient de la cellule D5 (15 mai 2001) dans l'exemple. La date de fin est générée avec la fonction AUJOURD'HUI. AUJOURD'HUI renvoie toujours la date actuelle dans Excel. Au moment d'écrire ces lignes, la date actuelle est le 24 novembre 2020. Le dernier argument de DATEDIF spécifie l'unité de temps. La fonction DATEDIF prend en charge plusieurs options ici, mais pour cet exemple, l'objectif est l'âge en années entières, nous utilisons donc "y" pour spécifier des années complètes.

À ce stade, nous pouvons réécrire la formule comme ci-dessous:

=DATEDIF("15-May-2001","24-Nov-2020", "y")

Les dates Excel étant en fait des numéros de série, les valeurs brutes sont:

=DATEDIF(37026,44159,"y")

Avec ces entrées, DATEDIF renvoie 19 comme résultat final.

Âge à une date précise

Pour calculer l'âge à une date spécifique, remplacez la fonction AUJOURD'HUI par la date cible. Un moyen simple et sûr de coder en dur une date spécifique dans une formule consiste à utiliser la fonction DATE. Par exemple, pour calculer l'âge au 1er janvier 2021, vous pouvez utiliser une formule comme celle-ci:

=DATEDIF(D5,DATE(2022,1,1),"y") // returns 20

Cette formule ramènera l'âge de Michael Chang au 1er janvier 2022, soit 20 ans.

Adulte ou mineur

Pour vérifier une date de naissance et renvoyer "Mineur" ou "Adulte", vous pouvez envelopper la formule dans la fonction IF comme ceci:

=IF(DATEDIF(D5,TODAY(),"y")<18,"Minor","Adult")

La formule ci-dessus est un exemple d'imbrication. Remplacez 18 ans par l'âge approprié.

Âge en années, mois et jours

Pour calculer l'âge en années, mois et jours, utilisez trois instances de DATEDIF comme ceci:

=DATEDIF(A1,TODAY(),"y")&"y "&DATEDIF(A1,TODAY(),"ym")&"m "&DATEDIF(A1,TODAY(),"md")&"d"

La première instance de DATEDIF renvoie des années, la deuxième instance des mois et la troisième des jours. Ceci est un exemple de concaténation, et le résultat est une chaîne de texte comme celle-ci:

19y 6m 9d

Notez que les dates de début et de fin restent les mêmes dans les trois DATEDIF; seule l'unité est modifiée.

YEARFRAC avec INT

Une autre option pour calculer l'âge à partir de la date de naissance utilise la fonction YEARFRAC avec la fonction INT dans une formule comme celle-ci:

=INT(YEARFRAC(D5,TODAY()))

YEARFRAC calcule un nombre décimal représentant la fraction d'une année entre deux dates. Pour calculer la fraction d'année sous forme de valeur décimale, Excel utilise des jours entre deux dates. Comme ci-dessus, la date de naissance est fournie comme date de début à partir de la cellule D5 et la date du jour est fournie comme date de fin, grâce à la fonction TODAY.

Avec une date actuelle du 24 novembre 2020, le résultat de YEARFRAC pour Michael Chang est:

19.5290896646133

Ensuite, la fonction INT prend le relais et arrondit ce nombre à la valeur entière, qui est le nombre 19.

=INT(19.5290896646133) // returns 19

Cette formule semble parfaitement logique et fonctionne très bien dans la plupart des cas. Cependant, YEARFRAC peut renvoyer un nombre incorrect aux dates d'anniversaire (anniversaires). Je ne sais pas exactement pourquoi cela se produit, mais cela est lié à la façon dont YEARFRAC utilise les jours pour déterminer les fractions d'années, ce qui est contrôlé par l'argument de base. Par exemple:

=YEARFRAC(DATE(1960,6,30),DATE(1962,6,30),1) // 1.998, should be 2 =YEARFRAC(DATE(1960,3,3),DATE(1964,3,3),1) // 3.998, should be 4

L'essentiel est que la formule de date DATEDIF est une option plus sûre et plus facile lorsque l'objectif est de déclarer l'âge en années entières.

Articles intéressants...