calcul de l'age

  • Initiateur de la discussion jake42
  • Date de début
J

jake42

Guest
Bonjour,

Je desespere, debutant sur excel, je cherche une formule permettant de calculer l'age d'une personne (sous la forme: ??ans ??jours)
apartir de sa date de naissance. (??/??/19??).

Merci a ceux qui la trouve ou qui la connaisse!
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

il y a peut-être plus simple (car j'ai du mal à simplifier les formules) mais par exemple avec la date de naissance en A1

=DATEDIF(A1;AUJOURDHUI();'y') & ' ans ' & DATEDIF(MOIS.DECALER(A1;DATEDIF(A1;AUJOURDHUI();'y')*12);AUJOURDHUI();'d') & ' jours'

Bon courage
 

Océane

XLDnaute Impliqué
Je m'exuse auprés de David mais je me suis trompé de correspondand :

ue autre solution pour la cacul de l'age [file name=Classeur11_20060321085749.zip size=1546]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur11_20060321085749.zip[/file]
 

Pièces jointes

  • Classeur11_20060321085749.zip
    1.5 KB · Affichages: 96

pierrejean

XLDnaute Barbatruc
bonjour jake Pascal Oceane

ci dessous un petit fichier qui me permet de na pas oublier les anniversaires avec une fonction personnelle donnant l'age a partir de la date de naissance [file name=anniversaires_20060321090910.zip size=18612]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/anniversaires_20060321090910.zip[/file]
 

Pièces jointes

  • anniversaires_20060321090910.zip
    18.2 KB · Affichages: 114

andré

XLDnaute Barbatruc
Salut,

Voici ce qu'en dit Laurent Longre
Ce lien n'existe plus

La fonction DATEDIF (calculs d'âge)
DATEDIF fait partie des fonctions masquées d'Excel, au même titre que par exemple ISPMT ou USDOLLAR. Elle n'est pas référencée par l'aide en ligne et n'apparaît pas dans la liste des fonctions disponibles de l'assistant 'Coller une fonction'.
DATEDIF permet de calculer la différence entre deux dates en années, mois et jours.

Syntaxe : =DATEDIF(Date1;Date2;Intervalle)

Cette fonction renvoie la différence entre Date1 et Date2 (Date2 >= Date1) selon l'argument Intervalle, qui peut prendre les valeurs suivantes :

'y' : différence en années
'm' : différence en mois
'd' : différence en jours
'ym' : différence en mois, une fois les années soustraites
'yd' : différence en jours, une fois les années soustraites
'md' : différence en jours, une fois les années et les mois soustraits

Exemple :

=DATEDIF('5/4/1990';'15/8/99';Intervalle) renvoie les valeurs suivantes selon la valeur de l'argument Intervalle :

'y' : 9 (ans)
'm' : 112 (mois)
'd' : 3419 (jours)
'ym' : 4 (mois restants, une fois les 9 ans soustraits)
'yd' : 132 (jours restants, une fois les 9 ans soustraits)
'md' : 10 (jours restants, une fois les 112 mois soustraits)

La fonction DATEDIF peut être en particulier utilisée pour calculer des âges. Par exemple, si la cellule A1 contient une date de naissance et la cellule B1 la date du jour :

- Age en années simples :

=DATEDIF(A1;B1;'y')&SI(DATEDIF(A1;B1;'y')>1;' ans';' an')

- Age en années et mois :

=DATEDIF(A1;B1;'y')&SI(DATEDIF(A1;B1;'y')>1;' ans, ';' an, ')
&DATEDIF(A1;B1;'ym')&' mois'

- Age en années, mois et jours :

=DATEDIF(A1;B1;'y')&SI(DATEDIF(A1;B1;'y')>1;' ans, ';' an, ')&DATEDIF(A1;B1;'ym')
&' mois, '&DATEDIF(A1;B1;'md')&SI(DATEDIF(A1;B1;'md')>1;' jours';' jour')

Cette formule peut faire apparaître des '0 an', '0 mois' ou '0 jour', par exemple si A1=22/01/1968 et B1=22/02/1968, elle renverra '0 an, 1 mois, 0 jour'. Pour éliminer ces 0 et renvoyer seulement '1 mois', utiliser la formule suivante :

=SUPPRESPACE(SI(B1-A1;TEXTE(DATEDIF(A1;B1;'y');'[>1]0'' ans'';[>]''1 an'';')&TEXTE(DATEDIF(A1;B1;'ym');'[>] 0'' mois '';')&TEXTE(DATEDIF(A1;B1;'md');'[>1]0'' jours'';[>]''1 jour'';');'0 jour'))

La fonction non documentée DATEDIF ne faisant pas partie de la collection WorksheetFunction, il est nécessaire de passer par la fonction Evaluate pour l'utiliser à partir de VBA.

La fonction VBA suivante s'appuie sur DATEDIF pour renvoyer un âge en années, mois et jours à partir de deux dates :

Function AGE(Date1 As Date, Date2 As Date) As String
Dim Elt As Long, D1 As Long, D2 As Long
D1 = Int(Date1): D2 = Int(Date2)
Elt = Evaluate('DATEDIF(' & D1 & ',' & D2 & ',''y''')
AGE = Elt & IIf(Elt > 1, ' ans, ', ' an,') & _
Evaluate('DATEDIF(' & D1 & ',' & D2 & ',''ym''') & ' mois, '
Elt = Evaluate('DATEDIF(' & D1 & ',' & D2 & ',''md''')
AGE = AGE & Elt & IIf(Elt > 1, ' jours', ' jour')


Â+
 

job75

XLDnaute Barbatruc
Re : calcul de l'age

Bonjour melissa88, bienvenue sur XLD,

C'est gentil de venir nous aider mais cette formule ne va pas du tout.

Supposons un bébé né le 1/1/2013.

Et qu'aujourd'hui nous sommes le 1/1/2014 => le bébé a donc pile 1 an.

Mais la formule =("1/1/2014"-"1/1/2013")/365,25 renvoie 0,999315537303217

La raison est facile à trouver...

Et si l'on voulait obtenir les jours le résultat serait encore plus erroné.

A+
 

Modeste geedee

XLDnaute Barbatruc
Re : calcul de l'age

Bonsour®
Bonjour melissa88
Supposons un bébé né le 1/1/2013.

Et qu'aujourd'hui nous sommes le 1/1/2014 => le bébé a donc pile 1 an.
Mais la formule =("1/1/2014"-"1/1/2013")/365,25 renvoie 0,999315537303217
A+

:rolleyes: ne pas perdre de vue que dans cette formulation,
cette notion de "pile un an"...
signifie : un an durée(temps) ou un an(intervalle calendaire) ????

autre point d'achoppement , les dates sont considérées à 00:00
donc par déduction la date supérieure n'est pas comprise dans l'intervalle

un an à un calendaire d'intervalle vaut 365 ou 366 jours.

01/01/20003661,002053388
01/01/20013650,999315537
01/01/20023650,999315537
01/01/20033650,999315537
01/01/20043661,002053388
01/01/20053650,999315537
01/01/20063650,999315537
01/01/20073650,999315537
01/01/20083661,002053388
01/01/20093650,999315537
01/01/20103650,999315537
01/01/20113650,999315537
01/01/20123661,002053388
01/01/20133650,999315537
01/01/20143650,999315537
01/01/20153650,999315537
01/01/20163661,002053388
 

Statistiques des forums

Discussions
312 429
Messages
2 088 351
Membres
103 824
dernier inscrit
frederic.marien@proximus.