Erreur de calcul de jour avec "datedif"

Résolu/Fermé
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018 - 23 juil. 2014 à 11:24
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018 - 25 juil. 2014 à 08:02
Bonjour,
je cherche une solution avec cette formule :

=DATEDIF(D2;D3;"Y")&SI(DATEDIF(D2;D3;"Y")>1;" ans ";" an ")&DATEDIF(D2;D3;"YM") &" mois "&DATEDIF(D2;D3;"MD")&SI(DATEDIF(D2;D3;"MD")>1;" jours";" jour")

d2 = 02/05/1978
d3 = 01/01/1996
Résultat : 17ans 7 mois 194jours alors que j obtiens
17ans 8 mois 0jour lorsque je passe 01/05/1978 en d2
Quelqu un connait il ce problème et éventuellement la solution ?
Merci d avance
Cordialement
SG


8 réponses

Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
23 juil. 2014 à 12:29
re

merci a Vaucluse pour votre réponse que j ai reçue par mail :

"Bonjour
qu'est ce qui vous gênes?
Si c'est le fait que vous trouvez 0 dans votre calcul, c'est normal car DATEDIF n'inclut pas le jour de départ et donc il faut rajouter +1 dans le calcul des jours
sinon le résultat est normal puisque le nombre de mois est complet si la date du jour est la même au deux postes.
crdlmnt

1°dois je décocher "Recevoir les réponses par mail" pour que tout le monde profite des réponses ?

2° ce n est pas le 0jours du qui me gênes, mais le 194 jours du 1° résultat

Cordialement
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
23 juil. 2014 à 12:35
Ma réponse a été supprimée, car je me suis rendu compte que le problème était ailleurs.
Je n'ai pas d'explication sur le fait que la formule comporte beaucoup trop de jours lorsque le nombre de mois n'est pas complet!
je cherche, mais pour le moment je ne trouve pas
Pour info, le nombre de jours avec les dates données est chez moi de 143 et pas de 194, ce qui ne change rien au problème!
A plus peut être
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
23 juil. 2014 à 12:50
.. suite toujours pas de solution rationnelle sauf à calculer en fin de formule le nombre de jour avec ce code:

=SI(JOUR(D2)=JOUR(D3);0;DATEDIF(D2;FIN.MOIS(D2;0);"d")+DATEDIF(FIN.MOIS(D3;-1);D3;"d"))

mais je suis sur de rien et surtout pas que ça puisse inclure dans le compte les années bissextiles

Bonne chance pour la suite
0
tontong Messages postés 2548 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 15 mars 2024 1 054
23 juil. 2014 à 12:45
Bonjour,
Avec vos valeurs et votre formule mon excel 2003 me donne 17ans 7 mois 30 jours et malgré quelques tentatives je n'obtiens pas 194 jours.
0
via55 Messages postés 14401 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 17 avril 2024 2 701
Modifié par via55 le 23/07/2014 à 14:58
Bonjour à tous

Comme Vaucluse (salut au passage!) j'obtiens bien 143

Apparemment le problème se pose pour chaque 1er janvier des années bissextiles (et que ce jour la apparemment !) ; si on prend comme date en d3 le jour précédent (31/12/95) ou le jour suivant (2/1/96) les calculs donnent des résultats corrects,
j'avais pensé à une solution de "bricolage"en modifiant ainsi la formule :

=DATEDIF(D2;D3;"Y")&SI(DATEDIF(D2;D3;"y")>1;" ans ";" an ")&DATEDIF(D2;D3;"ym")&" mois "&SI(DATEDIF(D2;D3;"md")>31;DATEDIF(D2;D3-1;"md")+1&SI(DATEDIF(D2;D3-1;"md")+1>1;" jours";" jour");DATEDIF(D2;D3;"md")&SI(DATEDIF(D2;D3;"md")>1;" jours";" jour"))

qui fonctionne avec l'exemple donné

mais le problème est plus complexe, en fait l'erreur se produit pour tout jour du mois de janvier d'une année bissextile dont le quantième est inférieur au jour de départ

Je continue à piocher la question

Cdlmnt

"L'imagination est plus importante que le savoir." A. Einstein
0
via55 Messages postés 14401 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 17 avril 2024 2 701
Modifié par via55 le 23/07/2014 à 15:13
Re

En fait il ne faut pas chercher trop loin, il suffit d'enlever 30 jours au lieu de 1 pour que la formule fonctionne du 1 au 30 janvier (le 31 où les dates sont égales ou la 2eme date est < à la 1ere et dans ce cas pas de bug) :

=DATEDIF(D2;D3;"Y")&SI(DATEDIF(D2;D3;"y")>1;" ans ";" an ")&DATEDIF(D2;D3;"ym")&" mois "&SI(DATEDIF(D2;D3;"md")>31;DATEDIF(D2;D3-30;"md")&SI(DATEDIF(D2;D3-30;"md")>1;" jours";" jour");DATEDIF(D2;D3;"md")&SI(DATEDIF(D2;D3;"md")>1;" jours";" jour"))

Mais en attendant le bug d'Excel pour les janviers d'année bissextile n'est pas élucidé, ni pour quoi 143 !

Cdlmnt
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
23 juil. 2014 à 17:48
Bonjour à tous,

C'est quand même étrange.
Je suis comme tontong. Je n'ai pas cette erreur, que ce soit sur 2003 ou 2010.
(sur W7 64 bits, bien que je ne pense pas que ça joue)
Vos versions c'est ?

eric
0
via55 Messages postés 14401 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 17 avril 2024 2 701
23 juil. 2014 à 17:53
Bonjour Eric

Je suis sur 2007

Bien cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
23 juil. 2014 à 17:56
Bonjour a tous,
et merci de votre rapide réactivité

la formule de "Via55" corrige effectivement le problèmes des jours mais "oublie 1 mois" avec D2= 02/05/1978 et D3 = 01/01/1996 et donne le bon résultat en passant D3 au 02/01/1996
en tout cas c est déjà mieux qu au départ ...
je pense effectivement que les années bissextiles sont la cause

Cdlt
0
via55 Messages postés 14401 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 17 avril 2024 2 701
23 juil. 2014 à 18:17
Exact !!! je n'avais pas vu le problème dès qu'il y un écart d'un jour seulement

La formule ainsi modifiée devrait rectifier , à tester dans tous les sens :
=DATEDIF(D2;D3;"Y")&SI(DATEDIF(D2;D3;"y")>1;" ans ";" an ")&DATEDIF(D2;D3;"ym")&" mois "&SI(DATEDIF(D2;D3;"md")>31;DATEDIF(D2;D3-32;"md")+2 &SI(DATEDIF(D2;D3-32;"md")+2>1;" jours";" jour");DATEDIF(D2;D3;"md")&SI(DATEDIF(D2;D3;"md")>1;" jours";" jour"))

Cdlmnt
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
23 juil. 2014 à 18:31
re

Magique !!!!!!
je viens de tester avec quelques dates qui me posaient probleme, tout semble fonctionner correctement
Merci
A+
Cdlt

--
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
23 juil. 2014 à 19:12
Tu peux dire sur quelle version d'excel tu es stp ?
eric
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
24 juil. 2014 à 09:28
je suis sous excel 2007

Cdlt

--
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
25 juil. 2014 à 08:02
Bonjour a tous
après différents tests, tout semble OK
Merci a Via55
Cdlt--
0