Calcul de l'âge à partir d'une date de naissance

Fermé
Signaler
-
 Hervé le vieux -
Bonjour,

Je souhaite calculer mon âge sur Excel. En B1 j'ai mis ma date de naissance et en B2 la date d'aujourd'hui.
J'entre alors la formule suivante : =ENT((AUJOURDHUI()-B1)/365).
Elle marche, mais j'obtiens un chiffre sans décimaux. Or, je souhaiterai une précision au centième près.

Quelqu'un a-t-il une idée d'une autre formule ? Ou es-ce parce que un réglage de Excel fait que les décimaux ne s'affichent pas ?

Merci d'avance

7 réponses

La fonction ENT est une fonction que j'ai trouvée sur un autre forum et qui semble fonctionner.
J'ai fait ce que vous m'avez dis pour le format de la cellule. Mais les chiffre décimaux sont 0000, donc ça ne change rien. La formule me donne un nombre entier...

Une autre formule à proposer?
8
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
23779
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 décembre 2021
3 148
En A1 : date de naissance,
en B1 =AUJOURDHUI(),
en C1 =DATEDIF(A1;B1;"y")
Le y veut dire qu'on veut des années, si l'on veut des jours, il faut mettre 'd'...
Messages postés
162
Date d'inscription
lundi 1 mars 2010
Statut
Membre
Dernière intervention
10 juillet 2014
363
c'est quoi ta fonction ENT() ?
met ta cellule au format nombre pour afficher les décimaux

attention à ton calcul XXX/365
car dans une année bissextile on est à 366 jours
Messages postés
6654
Date d'inscription
dimanche 18 mars 2012
Statut
Contributeur
Dernière intervention
7 janvier 2019
615
faut faire /365.25
Messages postés
23779
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 décembre 2021
3 148
Salut,

si tu mets la fonction ENT(), c'est sûr que tu n'auras pas de décimales...

Il y a plein de formules possibles pour déterminer ton âge, il faut seulement que tu dises ce que tu souhaites : que le nombre d'années ou alors le nombre d'années, mois, jours, secondes, par exemple.

A+ blux
 "Les cons, ça ose tout. 
C'est même à ça qu'on les reconnait"
Messages postés
26318
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
7 décembre 2021
6 135
Bonjour
qu'appelez vous décimale dans l'age?A partir de quelle type d'unité voulez vous la calculer (année, mois, jours?)
en attendant:
cette formule vous donne l'age exact en Année/ mois / Jours et prend en compte les années bissextiles.

=DATEDIF(A1;AUJOURDHUI();"Y")&"an."&DATEDIF(A1;AUJOURDHUI();"ym")&"mois."&DATEDIF(A1;AUJOURDHUI();"yd")&"j"

et si vous voulez des décimales avec votre formule, il suffit de supprimer le code ENT qui ne renvoie que le nombre entier qui compose le résulat!
Mais vos décimales au 1/100 ne tenant pas compte des années bissextiles, quelle en est l'utilité?
crdlmnt



Errare humanum est, perseverare diabolicum
Merci pour vos réponses.

Je souhaite obtenir mon âge, mais pas précis au mois ou au jours près. Un âge de la fort 19.36 par exemple. Si je suis proche de 20, on aurait 19.95, et si je suis plus proche de 19, on aurait 19.02.

Il me faut donc le nombre d'année, et les décimal qui équivalent aux mois et aux jours...
J'espère avoir été assez précise...
Merci d'avance
Messages postés
26318
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
7 décembre 2021
6 135
Alors simplement votre formule sans ENT comme dis plusieurs fois plus haut:

=(AUJOURDHUI()-B1)/365 mais c'est très approximatif.

pour être un peu plus précis au jour le jour

=DATEDIF(B1;AUJOURDHUI();'Y")+DATEDIF(B1;AUJOURDHUI();"yd")/365


crdlmnt
Messages postés
26318
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
7 décembre 2021
6 135
Bonjour
C'est écrit un peu plus haut!
pour avoir l'age en années complètes:
=DATEDIF(cellule date naissance; AUJOURDHUI();"y")
crdlmnt
Messages postés
569
Date d'inscription
lundi 29 juillet 2013
Statut
Membre
Dernière intervention
7 mai 2015
82
Bonjour,

@louisccm
utilise
=DATEDIF(B1;AUJOURDHUI();'Y") ou B1 est ta date de naissance.

Le résultat sera donné en année
A UNE CELLULE DE VOTRE CHOIX EXEMPLE B1 vous marquer votre date de naissance.
Ensuite à une autre cellule vous marquer la FORMULE =ENT((AUJOURDHUI()-B1)/365)
vous faites ENTER et le résultat s'affiche arrondi pret.
la formule (AUJOURDHUI()-B1)/365 est pour calculer l'age sur 365 jours à la date du jour. mais il y aura des virgules. ENT() viens arrondir les virgules.
CA MARCHE j'ai moi meme essayé
Je ne sais pas si le cas de toutes les formules mais en utilisant la formule =ENT()/365, cela reste approximatif.... Date du jour le 25/11/2015, Date de naissance le 28/11/1985, résultat 30,01 ce qui n'est pas exact puisque la personne aura 30,00 dans 3 jours.
À partir des dernières version d'Excel vous pouvez utiliser le calcul suivant, l'àge se calculerait ainsi :
=Arrondi.Inf(Fraction.Annee(AujourdHui();DateDeNaissance);0)

Par exemple :
AujourdHui() = 8 décembre 2015 = 42346
DateDeNaissance = 13 février 1993 = 34013

Fraction.Annee(42346;34013) = 22,8194444 ou 22 ans
Si on simule AujourdHui() = 13 février 2016 = 42413
Fraction.Annee(42413;34013) = 23 ou 23 ans

Ce qui est précisément ce que l'on recherche. Plus besoin d'utiliser 365,25 ou d'avoir un chiffre imprécis.

Bonjour à tous,
J'ai, par hasard, lu les échanges sur ce sujet et je constante qu'aucune des formules données ne fournit la bonne réponse dans toutes les conditions. Voici une petite routine VBA qui répond à la question, ainsi qu'un jeu de test :
'=====================================================================================
Private Sub TestAge()
Debug.Print Age("26/08/1972", "27/07/1973")
Debug.Print Age("26/08/1972", "27/08/1973")
Debug.Print Age("26/08/1972", "25/08/1974")
Debug.Print Age("26/08/1972", "26/08/1974")
Debug.Print Age("26/08/1972", "27/08/1974")
End Sub
'=====================================================================================
Private Function Age(ByVal DateNaissance As Date, _
Optional ByVal Echéance As Date = 0)

'CRÉATION : 12 novembre 2000 - Hervé Mary
'MODIFICATIONS :
'DESCRIPTION :
' Cette fonction retourne l'âge, EN ANNÉES, qu'une personne a eu ou aura à une date donnée.
'
'INFORMATIONS REÇUES :
' DateNaissance : Date de naissance de la personne
' Echéance : Argument facultatif qui indique la date à laquelle on veut
' connaître l'âge de la personne (date de décès éventuelle).
' Si l'argument est fourni, la fonction retourne l'âge qu'avait ou
' qu'aura la personne à la date indiquée le jour de son décès.
' Si l'argument est omis, la fonction retourne l'age qu'a la
' personne à la date d'exécution de la fonction.
'
'CONDITIONS ET EXCEPTIONS :
' Pour un intervalle en années, la fonction 'DateDiff' retourne le nombre
' d'années écoulées, MÊME PARTIELLEMENT, entre les deux dates qui lui
' sont fournies (elle calcule simplement la différence entre les années des
' deux dates). Exemple :
'
'datediff("yyyy", "01/10/1980","01/01/1981",vbMonday,vbFirstFourDays) = 1
'
' alors qu'il ne s'est réellement écoulé que 3 mois année entre les deux date.
'
'-------------------------------------------------------------------------------------

Dim Aniv As Date
Dim Ans As Integer

'En l'absence de date d'échéance, utiliser la date du jour
If Echéance = 0 Then Echéance = Date
'Calculer le nombre d'années écoulé depuis la date de naissance
Ans = DateDiff("yyyy", DateNaissance, Echéance)
'Corriger en fonction du mois et du jour de naissance
Aniv = DateSerial(Year(Echéance), Month(DateNaissance), Day(DateNaissance))
If Echéance < Aniv Then Ans = Ans - 1
'Retourner le résultat
Age = Ans

End Function 'Age