Intervale de date incorrecte

Résolu/Fermé
Turk_182 - Modifié par Turk_182 le 26/06/2010 à 04:13
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 26 juin 2010 à 10:49
Bonjour,

J'ai une intervale entre deux dates qui ne donne pas la bonne réponse. La première date est 3 juillet 1876 (A1) et la seconde est 31 juillet 1957 (B1). Il s'affiche #VALEUR! en C1. Et voici la formule que j'utilise pour la case C1:

=SI(B1="";DATEDIF(A1;AUJOURDHUI();"y");DATEDIF(A1;B1;"y"))

A1= Naissance
B1= Décès
C1= Age actuel ou age au décès

C'est pour un arbre généalogique, j'ai fait plein de gens de ce siècle qui sont pas mort, d'autre qui sont morts, et là je suis que dans des gens qui sont morts mais qui sont nés dans l'autre siècle.

Aidez moi à régler se petit problème.

Turk_182

4 réponses

Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 942
26 juin 2010 à 04:30
Salut le forum

Pour les dates inférieures à 1900 la fonction datedif est inopérante.

Mytå
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
26 juin 2010 à 08:56
Bonjour
Pour la forme
si vous avez d'afficher dans une cellule des dates antèrieures à 1900, elles sont nécessairement en format texte, avec probablement l'année à 4 chiffres en fin de texte:
vous pouvez donc utiliser,(mais c'est à mon avis plus complexe qu'un calcul mental), avec une date de naissance en A1,:
=SI(ESTTEXTE(A1);DATEDIF(1/1/1900;AUJOURDHUI();"y")+1900-DROITE(A1;4);DATEDIF(A1;AUJOURDHUI();"y"))
ou pour faire plus simple, placer la "constante" dans une cellule:
DATEDIF(1/1/1900;AUJOURDHUI();"y")
pour l'exemple en C1
la formule devient
=SI(ESTTEXTE(A1);C1+1900-DROITE(A1;4);DATEDIF(A1;AUJOURDHUI();"y"))
Le seul avantage de cette solution est que votre arbre se mettra à jour chaque 1° Janvier
Bonne année
Crdlmnt
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
26 juin 2010 à 09:38
Bonjour,

une autre proposition (à tester sur qcq exemples) :
=STXT(TEXTE(SI(B2="";AUJOURDHUI();B2);"jj/mm/aaaa");7;4)-STXT(TEXTE(A2;"jj/mm/aaaa");7;4)-((STXT(TEXTE(SI(B2="";AUJOURDHUI();B2);"jj/mm/aaaa");4;2)-STXT(TEXTE(A2;"jj/mm/aaaa");4;2))*100+STXT(TEXTE(SI(B2="";AUJOURDHUI();B2);"jj/mm/aaaa");1;2)-STXT(TEXTE(A2;"jj/mm/aaaa");1;2)<0)

Si la date de décès est vide donne l'age actuel.
Les dates au format texte (inférieures au 01/01/1900) doivent être au format jj/mm/aaaa (donc 03/11/1800 et non pas 3/11/1800)

eric
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
26 juin 2010 à 10:34
Ou encore:
=SI(ESTTEXTE(B1);DROITE(B1;4)-DROITE(A1;4);SI(ESTTEXTE(A1);ANNEE(B1)-1900+1900-DROITE(A1;4);DATEDIF(A1;B1;"y")+1))
_(le +1 pour inclure l'année en cours,sinon, renvoi un an de moins)
avec la date de naissance en A1 et en B1 soit la date du décès, soit =AUJOURDHUI()
Crdlmnt
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
26 juin 2010 à 10:49
Salut vaucluse :-)

En précisant que tu ne tiens pas compte de la date anniversaire.
Qcq chose de bizarre dans ta formule c'est le -1900+1900
Soit tu as oublié de simplifier, soit il manque qcq chose (?)
eric
0