Quand on développe un modèle financier ou tout autre outil de gestion dans Excel, il faut que les calculs soient dynamiques et qu’ils se mettent à jour automatiquement. Ainsi, lorsque vous avez à travailler avec l’âge de certains individus, vous devez vous assurer que ces individus auront vieilli d’un an, lorsque vous utiliserez votre outil dans un an! Pour permettre de calculer l’âge de façon automatique, vous devrez donc travailler avec les dates de naissance des individus.
Calcul dynamique d’âge dans Excel
Dans l’exemple suivant, à la cellule B1, nous avons d’abord inséré la fonction AUJOURDHUI() (ou TODAY() en anglais) qui permet de déterminer la date du jour. Ainsi, lorsque vous ouvrez votre fichier, vous verrez toujours dans la cellule B1, la date du jour. Aucune action ne sera requise pour faire la mise à jour.
Ensuite, nous avons inséré un tableau avec le nom des individus, suivis de leurs dates de naissance (qui elles, ne devraient pas changer dans le temps!). Nous avons enfin inséré une dernière colonne, dans laquelle nous avons rédigé une formule permettant de calculer l’âge de l’individu sous-jacent, basé sur la date du jour. Cette formule, en français, s’écrit comme suit: ARRONDI.INF(($B$1-C4)/365,0) ou en anglais ROUNDDOWN(($B$1-C4)/365,0). Elle demande à Excel de soustraire la date de naissance de la date du jour (ce qui donne une réponse en jours) et de diviser ensuite ce nombre par 365 (pour obtenir le nombre d’années). Finalement, pour ne pas être aux prises avec des décimales, on demande à Excel d’arrondir le résultat vers l’entier inférieur.
Ainsi, peu importe le moment où vous utiliserez votre outil, l’âge des individus sera toujours recalculé en fonction de la date du jour.
Vous aimeriez créer des états financiers prévisionnels complets et dynamiques dans Excel, capables de se moduler à vos hypothèses, afin d’éclairer vos décisions d’affaires ? Apprenez les meilleures pratiques avec nos formations en modélisation financière. |
---|
Toutefois, comme on doit composer avec la réalité des années bissextiles, dans de rares occasions, le calcul sera légèrement erroné. Pour cette raison, il pourrait être plus intéressant encore d’utiliser la fonction suivante :
- En français = DATEDIF(C4;aujourdhui(),”a”)
- En anglais=DATEDIF(C4,today(),”y”)
Voyez le tout en action avec ce tutoriel
Formation complémentaire
Êtes-vous aussi bon que vous le pensez avec Excel ? Faites le test ! Vous pourrez ensuite suivre la formation Excel – Mise à niveau qui peut servir de mise à niveau pour les professionnels qui utilisent déjà Excel dans le cadre de leurs fonctions et qui désirent aller plus loin et elle est également un prérequis recommandé pour les formations Excel – Tableaux de bord (niveau 1), Excel O365 – Bienvenue dans l’ère moderne! et surtout, Excel – Modélisation financière (niveau 1).
Voici quelques commentaires d’apprenants ayant suivi la formation Excel – Mise à niveau :
Très utile cette formule, sauf que quand je la valide un message d’erreur me signale: “Vous avez tapé un nombre insuffisant d’arguments pour cette fonction”. Quand je clique sur la formule, un message flottant apparaît : “ARRONDI.INF(nombre;no_chiffres)”.
Merci de m’éclairer sur ce point.
Bonjour Mounir,
En général, lorsque vous recevez ce message, c’est que vous avez omis un paramètre dans la formule. Assurez-vous de bien insérer le 0 à la fin.
En général également, si vous utilisez Excel en français, vous devrez séparer les paramètres de la formule par un ; et si vous utilisez Excel en anglais, vous devrez séparer les paramètres de la formule par une , .
Laissez-moi savoir si vous rencontrez toujours un problème et le cas échéant, écrivez-moi dans la zone de commentaires, la formule que vous tentez d’insérer.
Au plaisir,
Sophie
C4EST COOL
Bonjour Sophie,
Merci pour tous vos articles.
La fonction FRACTION.ANNEE, apparue avec Excel 2007 (je crois), donne des résultats plus précis :
Aujourdhui() => 29/10/2013
Date de Naissance : 30/10/1958
1) Age donné par ($B$1-C4)/365 = 55,03561644 Ce qui n’est pas exact car la date anniversaire n’est pas atteinte, la personne n’a pas encore 55 ans.
2) Age donné par FRACTION.ANNEE(C4;$B$1;1) = 54,99794661, ce qui est exact, la personne ayant encore 54 ans (au sens où l’on constate l’anniversaire à la date du jour ici le 30/10).
L’arrondi sera correct dans le 2è cas.
Bien cordialement,
Jean-Charles
Bonjour Jean-Charles,
Vous avez raison. C’est à cause que les soustractions que je propose ne tiennent pas compte des années bissextiles. Vous avez bien fait de noter le tout.
Au plaisir,
Sophie
bonjour
je veux automatiser le détachement de coupon d’une obligation sachant qu’il se fait a chaque anniversaire de celui ci en fonction de la date d’achat
Bonjour Jean-Charles, afin d’obtenir de l’aide de la part de la communauté, je vous invite à déposer votre question dans notre forum Excel en y ajoutant un fichier exemple de ce que vous souhaitez obtenir. Bonne journée!
On pourrait aussi jouer et ajouter un colonne pour montrer l’anniversaire des employés (si l’on travaille avec le département des Ressources Humaines par exemple) avec cette formule:
=IF(AND(MONTH($B$1)=MONTH(C4),DAY($B$1)=DAY(C4)),”Anniversaire!”,””)
Formule incorrect. La division par 365 est trop simpliste. Exemple, si votre premiere date est le 30 octobre 1960, l’age ne correspond plus à la réalité. Il manque 1 quart de journée par année. Au bout de 50 ans, il s’agit de plus de 3 semaines.
Voici la formule exact à modifier à votre guise.
Date_Ajourdhui est un alias sur une celle qui contient la date d’aujourd’hui par la fonction du même nom.
A5 est la cellule qui contient la date de naissance.
=DATEDIF(A5;Date_Aujourdhui;”y”)&” ans, “&DATEDIF(A5;Date_Aujourdhui;”ym”)&” mois et “&DATEDIF(A5;Date_Aujourdhui;”md”)&” jours”
Pour la date de naissance du 30 octobre 1960 nous obtenons : 52 ans, 11 mois et 29 jours.
Quelle serait la formule en français ? Je ne vois pas l’équivalent.
Cordialement,
Comme Pascal a dit, cette fonction est déjà écrite en français et c’est la même fonction en anglais. Pourtant, on ne la trouve pas dans la liste des fonctions mais elle fonctionne correctement. J’utilise Excel 2013 et je ne la voie non plus.
Bonsoir,
Pour le calcul de l’âge qui tient compte des années bissextiles voici la formule à utiliser :
=ARRONDI.INF(FRACTION.ANNEE(date_debut;date_fin;1);0)
L’option “1” dans la fonction FRACTION.ANNEE(date_debut;date_fin;1) correspond à un calcul “réel” sinon vous pouvez calculer sur des bases de 365 j, 360j etc… Excel 2013 lors de la saisie vous propose un menu des options possibles.
Cordialement,
Jérôme
Bonjour Jérôme, il s’agit de la formule en français. J’utilise excel en français et cela fonctionne très bien tel quel.
http://www.commentcamarche.net/faq/22460-difference-entre-dates-avec-la-fonction-datedif
Semble ludique pour les anniversaires mais crucial en précision pour l’ancienneté dans bien des systèmes. Quand on travaille avec les dates, c’est rarement une bonne idée de réduire en jours ou en secondes et d’effectuer des arrondissements. Si on le fait, il faudra bien documenter les cas limites et les marges d’erreurs.
bonsoir,
diviser par 365 n’est pas précis; 365.25 le serait plus à cause des années bissextiles (sur 56 ans, l’écart est de près de 2 semaines, bonjour les anniversaires!)
cette formule ne donne pas encore 55 ans à l’exemple de sarfati (29/10 05:02)
aleuro
pouvez vous me préciser le format de des dates B1 et C4 ? j’ai l’erreur #valeur#
Merci pour le travail génial que vous faites .
Bonjour,
Pourriez-vous me faire parvenir votre fichier à marchandsophie@hotmail.com afin que je puisse constater le problème?
Merci.
Sophie
Merci mille fois: cela m’a beaucoup aidé pour la rédaction de ma thèse. Merci encore!
Ca c’est précis car je compare si ca fête a eu lieu :
=SI(ESTVIDE(AD8);””;ANNEE(AUJOURDHUI())-ANNEE(AD8)-1+SI(MOIS(AUJOURDHUI())>MOIS(AD8);1;SI(MOIS(AUJOURDHUI())=MOIS(AD8);SI(JOUR(AUJOURDHUI())>=JOUR(AD8);1))))
que signifie $B$1
Bonjour,
C’est la cellule B1, qui contient la date du jour.
Sophie
Cordialement
Comment puis faire si j’ai déjà l’age de l’employé , et qu’on me demande quand l’employé aurais ses 50ans
Bonjour,
=(50-AGE ACTUEL)*365+AUJOURDHUI()
Au plaisir,
Sophie
bonjour
ça fonctionne très bien, sauf que je n’obtient pas des nombre entier? ex 8.094405 pour 8ans
MERCI d’avance
Bonjour,
Vous pouvez utiliser la fonction ARRONDIINF pour avoir le chiffre arrondi à l’unité inférieure.
Sophie
pour quelqu’un qui est né le 15/07/1978
=GAUCHE((aujourd’hui()-date de naissance)/365;2)
Merci c la seule formule qui marche b1
Bonjour Madame,
Je souhaiterais calculer l’âge d’une en prenant en compte sa date de naissance, la date de début d’une saison et le premier jour de l’année.
Ex : date de naissance 27/07/98
date de début de saison 01/07/18
date de début de l’année 01/01/18
Car je voudrais que la personne est l’âge révolu au début de la saison
Bonjour,
Après m’être longtemps agacée sur la formule DATEDIF que je n’arrivais pas à faire fonctionner, j’ai fini par comprendre que cela venait des années que j’entrais: je souhaite me servir de ce calcul en généalogie et mes dates référentes sont bien antérieures à 1900; savez-vous comment je peux demander à excel de prendre en compte une plus grande plage d’années s’il vous plait ? J’utilise Office Pro 2013 sous Windows 10.
Merci beaucoup d’avance.
Caroline
Bonjour,
Vous pourriez consulter l’article suivant http://www.exceluser.com/formulas/earlydates.htm.
Au plaisir,
Sophie
Salut
Je veux connaître une date de naissance. Si la personne a 62 ans 2 Mois 7 Jours à la date du 31 Mars 2022, quelle peut être sa date de naissance réelle.
Merci
Bonjour,
On pourrait trouver une date approximative, mais quand même proche de la réalité, en utilisant le calcul suivant:
aujourd’hui() – (nb années * 365.5 + nb mois * 30,437525 + nb jour) – 1
Kim
Moi j’aimerais avoir un formule pour savoir la majorité dune personne mettons sa date de naissance et avoir une colonne quand il va avoir ces 18 ans je sais pas si vous comprenez ma question ?
Bonjour!
Pour obtenir de l’aide de la communauté, vous pouvez ajouter votre question sur notre forum Excel : https://www.lecfomasque.com/forum/excel/