Intervale de date incorrecte
Résolu
Turk_182
-
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
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
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
-
Salut le forum
Pour les dates inférieures à 1900 la fonction datedif est inopérante.
Mytå -
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 -
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 -
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