Erreur de calcul de jour avec "datedif"
Résolu
Gil369
Messages postés
120
Date d'inscription
Statut
Membre
Dernière intervention
-
Gil369 Messages postés 120 Date d'inscription Statut Membre Dernière intervention -
Gil369 Messages postés 120 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Datedif en francais
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Dernière version ccleaner gratuit français - Télécharger - Nettoyage
- Fixwin 11 en français - Télécharger - Divers Utilitaires
- Telechargement film d'action complet en francais - Télécharger - TV & Vidéo
- Glary utilities en français - Télécharger - Nettoyage
8 réponses
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
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.
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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
--
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
=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