calculer l'age d'une personne

ZZR09

XLDnaute Occasionnel
Bonjours à toutes et tous,

Voici un petit casse-tête :
Sachant que j'ai en A une liste de personnes (prénom)
En B leur date de naissance, à l'heure près.

Quel est leur age actuellement ? En C :S


Il faut que l'age se mette à jour automatiquement avec la date actuelle.

Bon courage ... :whistle:
C'est pas un problème perso ... juste pour s'amuser un peu.

[file name=age.zip size=1575]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/age.zip[/file]
 

Pièces jointes

  • age.zip
    1.5 KB · Affichages: 70
  • age.zip
    1.5 KB · Affichages: 78
  • age.zip
    1.5 KB · Affichages: 71

2passage

XLDnaute Impliqué
Bonjour

alors.. j'ai bien une petite formule à proposer mais j'ai les yeux trop explosés pour être vraiment sur du resultat.. tu fais les tests ?

:p :evil:
A+

edit : je l'arrive pas a mettre la formule en page, je mets en fichier joint
[file name=age2.zip size=2243]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/age2.zip[/file]

Message édité par: 2passage, à: 13/07/2005 16:51
 

Pièces jointes

  • age2.zip
    2.2 KB · Affichages: 73

2passage

XLDnaute Impliqué
Re,

arf ! j ai une erreur sur le calcul du nombre de jours.... grmmbl... je corrige et je remets un fichier

++

Edit : voici la formule, finalement

=SI(MOIS(MAINTENANT())<MOIS(B2);ANNEE(MAINTENANT())-1-ANNEE(B2);ANNEE(MAINTENANT())-ANNEE(B2)) & ' ans, ' & SI(MOIS(MAINTENANT())<MOIS(B2);12+MOIS(MAINTENANT())-MOIS(B2);MOIS(MAINTENANT())-MOIS(B2)) & ' mois, ' & SI(JOUR(MAINTENANT())<JOUR(B2);JOUR(CNUM('1/' & MOIS(MAINTENANT())+1&'/'&ANNEE(MAINTENANT()))-1)+JOUR(MAINTENANT())-JOUR(B2);JOUR(MAINTENANT())-JOUR(B2)) &' jours, '& SI(HEURE(MAINTENANT())<HEURE(B2);24+HEURE(MAINTENANT())-HEURE(B2);HEURE(MAINTENANT())-HEURE(B2)) &' heures, ' & SI(MINUTE(MAINTENANT())<MINUTE(B2);60+MINUTE(MAINTENANT())-MINUTE(B2);MINUTE(MAINTENANT())-MINUTE(B2)) &' minutes et '& SI(SECONDE(MAINTENANT())<SECONDE(B2);60+SECONDE(MAINTENANT())-SECONDE(B2);SECONDE(MAINTENANT())-SECONDE(B2)) & ' secondes.'

Message édité par: 2passage, à: 13/07/2005 16:59
 

Tibo

XLDnaute Barbatruc
Salut ZZR09,

J'ai retrouvé dans un post de Brigitte la formule suivante :

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

Elle ne gère pas les heures, minutes etc, mais c'est déjà un bon début.

Dans son post de février 2005, Brigitte préconisait deux Doliprane pour cette formule.

Tu es donc prévenu.

Bonne soirée.
 

ZZR09

XLDnaute Occasionnel
A priori, il y a qq(s) petits problèmes :
- L'age à l'année est faux : Paul, JAcques et Simon n'ont pas encore eut leur 25ème anniversaire)...

Il faut trouver une solution dégressive.

Personnellement, j'attendais une solution du genre : il a 24 ans ou 25 ans.

Votre proposition est beaucoup plus précise : woohoo: mais aussi beaucoup plus complexe :silly:

A bientôt :eek:
 

Tibo

XLDnaute Barbatruc
Bonjour ZZR09,

J'ai repris ton problème pour agrémenter ma soirée d'hier ;) :lol:

En prenant la formule de Brigitte et en m'inspirant des formules contenues dans le classeur recommandé par Monique, avec une très légère adaptation, je te propose ceci :

=SI(DATEDIF(A1;MAINTENANT();'y')=0;;DATEDIF(A1;MAINTENANT();'y')&SI(DATEDIF(A1;MAINTENANT();'y')>1;' ans ';' an '))&SI(DATEDIF(A1;MAINTENANT();'ym')=0;;DATEDIF(A1;MAINTENANT();'ym')&' mois ')&DATEDIF(A1;MAINTENANT();'md')&SI(DATEDIF(A1;MAINTENANT();'md')>1;' jours';' jour')&' '&HEURE(MOD(MAINTENANT()-A1;1))& ' heure'&SI(HEURE(MOD(MAINTENANT()-A1;1))>1;'s';)&' '&MINUTE(MOD(MAINTENANT()-A1;1))& ' minute'&SI(MINUTE(MOD(MAINTENANT()-A1;1))>1;'s';)&' '&SECONDE(MOD(MAINTENANT()-A1;1))& ' seconde'&SI(SECONDE(MOD(MAINTENANT()-A1;1))>1;'s';)

avec une utilisation intensive de la fonction DATEDIF.

Merci à Brigitte, merci à Monique, Cathy et Celeda pour leur classeur 5 étoiles *****.

Bon défilé

P.S. : il faut remplacer les smileys par ;).

Message édité par: tibo, à: 14/07/2005 09:30
 

Tibo

XLDnaute Barbatruc
Salut André,

Bien vu :lol:

Je plonge dans le Zop directement :lol:

Ah que de petits problèmes entre les 'points-virgule + parenthèse' (je ne prends plus de risques :lol:) et les smileys.

Au fait, quelqu'un peut il nous fire comment faire un copier coller d'une formule Excel vers XLD sans transformer les ; ) (j'ai mis un espace entre les deux) en smiley ?
 

ZZR09

XLDnaute Occasionnel
Bonjour à toutes et tous,

Merci à toutes et tous pour ces réponses :Woohoo:

J'avais déjà rencontré ce problème d'âge mais seulement pour faire des catégories (juniot, sénior, etc.).
Dans ce cas la solution est déjà un peu tordue à comprendre mais, finalement, assez simple dans Excel.

Mais au regard des réponses apportées, et auxquelles je ne m'attendais pas, je dois bien admettre que je suis très impressionné. Et m'intéresse aussi au pbm du nombre d'années, de mois etc.

Maintenant, il faut que je me mette à jour dans mes formules et j'ai déjà enregistré le classeur Dates & Heures de Monique et Cathy dans un coin du PC. J'espère que bcp on fait de même! ;)

J'ai quelques soucis avec mon PC qui ne connaît pas certaines formules :(

Il me faudra ensuite qqs dolipranes pour comprendre la logique du calcul ...:eek:

A+
 

ZZR09

XLDnaute Occasionnel
Sur la base du travail de Cathy, Monique et Celeda, et enfin repris par Tibo (et d'autres) mais c'est sa formule que j'ai copié ...
j'ai fait quelques tests :whistle: ... et quelques modifs :) (pour les pluriels - donc pas grand chose !

x) par contre, IL Y A ENCORE DES ERREURS

Je m'explique :

mois_naiss= 06/1980 à 15 heures
mois_actuel= 07/2005 à 13 heures

La réponse est 0 mois : il n'aura 1 mois que losque 15 heures seront passées, la formule à laquelle nous sommes arrivés nous indique 1 mois :eek:

Bon courage ...




=SI(DATEDIF(A1;MAINTENANT();'y')=0;;DATEDIF(A1;MAINTENANT();'y')&SI(DATEDIF(A1;MAINTENANT();'y')>1;' ans ';' an '))&SI(DATEDIF(A1;MAINTENANT();'ym')=0;;DATEDIF(A1;MAINTENANT();'ym')&' mois ')&DATEDIF(A1;MAINTENANT();'md')& ' jour' &SI(DATEDIF(A1;MAINTENANT();'md')>1;'s ';' ')&HEURE(MOD(MAINTENANT()-A1;1))&' heure'&SI(HEURE(MOD(MAINTENANT()-A1;1))>1;'s ';' ')&MINUTE(MOD(MAINTENANT()-A1;1))&' minute'&SI(MINUTE(MOD(MAINTENANT()-A1;1))>1;'s ';' ')&SECONDE(MOD(MAINTENANT()-A1;1))&' seconde'&SI(SECONDE(MOD(MAINTENANT()-A1;1))>1;'s ';' ')



Tibo écrit:
Bonjour ZZR09,

J'ai repris ton problème pour agrémenter ma soirée d'hier ;) :lol:

En prenant la formule de Brigitte et en m'inspirant des formules contenues dans le classeur recommandé par Monique, avec une très légère adaptation, je te propose ceci :

=SI(DATEDIF(A1;MAINTENANT();'y')=0;;DATEDIF(A1;MAINTENANT();'y')&SI(DATEDIF(A1;MAINTENANT();'y')>1;' ans ';' an '))&SI(DATEDIF(A1;MAINTENANT();'ym')=0;;DATEDIF(A1;MAINTENANT();'ym')&' mois ')&DATEDIF(A1;MAINTENANT();'md')&SI(DATEDIF(A1;MAINTENANT();'md')>1;' jours';' jour')&' '&HEURE(MOD(MAINTENANT()-A1;1))& ' heure'&SI(HEURE(MOD(MAINTENANT()-A1;1))>1;'s';)&' '&MINUTE(MOD(MAINTENANT()-A1;1))& ' minute'&SI(MINUTE(MOD(MAINTENANT()-A1;1))>1;'s';)&' '&SECONDE(MOD(MAINTENANT()-A1;1))& ' seconde'&SI(SECONDE(MOD(MAINTENANT()-A1;1))>1;'s';)

avec une utilisation intensive de la fonction DATEDIF.

Merci à Brigitte, merci à Monique, Cathy et Celeda pour leur classeur 5 étoiles *****.

Bon défilé

P.S. : il faut remplacer les smileys par ;).<br><br>Message édité par: tibo, à: 14/07/2005 09:30
 

Discussions similaires

M
Réponses
4
Affichages
5 K
M
A
Réponses
7
Affichages
1 K
Arnaud
A