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
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
A voir également:
- Datedif en francais
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- What is my movie français - Télécharger - Divers TV & Vidéo
- Ccleaner gratuit en francais - Télécharger - Nettoyage
- Film d'action en français à télécharger - Télécharger - TV & Vidéo
- Facebook en français - Guide
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
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
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
tontong
Messages postés
2567
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
20 novembre 2024
1 059
23 juil. 2014 à 12:45
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.
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.
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
2 739
Modifié par via55 le 23/07/2014 à 14:58
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
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
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
2 739
Modifié par via55 le 23/07/2014 à 15:13
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
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
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
23 juil. 2014 à 17:48
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
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
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
2 739
23 juil. 2014 à 17:53
23 juil. 2014 à 17:53
Bonjour Eric
Je suis sur 2007
Bien cordialement
Je suis sur 2007
Bien cordialement
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
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
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
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
2 739
23 juil. 2014 à 18:17
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
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
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
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
--
Magique !!!!!!
je viens de tester avec quelques dates qui me posaient probleme, tout semble fonctionner correctement
Merci
A+
Cdlt
--
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
23 juil. 2014 à 19:12
23 juil. 2014 à 19:12
Tu peux dire sur quelle version d'excel tu es stp ?
eric
eric
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
24 juil. 2014 à 09:28
je suis sous excel 2007
Cdlt
--
Cdlt
--
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
25 juil. 2014 à 08:02
Bonjour a tous
après différents tests, tout semble OK
Merci a Via55
Cdlt--
après différents tests, tout semble OK
Merci a Via55
Cdlt--
23 juil. 2014 à 12:35
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
23 juil. 2014 à 12:50
=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