OVH Cloud OVH Cloud

DATEDIFF donne un résultat bizarre !!!

5 réponses
Avatar
Cervolent
Salut à tous,

Je recherche une formule me permettant de trouver l'écart entre 2 dates en
jours, mois, année ... peu importe l'ordre d'affichage ...
J'ai bien vu les fils concernant ce sujet et le site d'excellabo ...
en admettant qu'en B5 j'ai la date d'entrée en service soit : 01/07/97
en B6 la date de sortie de a société : 30/06/05
avec les 2 formules suivantes j'ai le même résultat erroné ...
1) =SUPPRESPACE(SI(B6-B5;TEXTE(DATEDIF(B5;B6;"y");"[>1]0"" ans"";[>]""1
an"";")&TEXTE(DATEDIF(B5;B6;"ym");"[>] 0"" mois
"";")&TEXTE(DATEDIF(B5;B6;"md");"[>1]0"" jours"";[>]""1 jour"";");"0 jour"))

2)
=SI(ET(DATEDIF(B5;B6;"y")=0;DATEDIF(B5;B6;"ym")=0;DATEDIF(B5;B6;"md")=0);0&"
jour";SI(DATEDIF(B5;B6;"y")<>0;DATEDIF(B5;B6;"y")&SI(DATEDIF(B5;B6;"y")>1;"
ans ";" an ");"")&SI(DATEDIF(B5;B6;"ym")<>0;DATEDIF(B5;B6;"ym")&" mois
";"")&SI(DATEDIF(B5;B6;"md")<>0;DATEDIF(B5;B6;"md")&SI(DATEDIF(B5;B6;"md")>1;" jours";" jour");""))

soit les résultats suivants : 7 ans 11 mois 29 jours
c'est faux ça fait 8 ans pile ... comment ça s'fait ... quelqu'un a-t-il la
solution ???

Je m'suis p't'ete trompé quelque part

Merci d'avance pour vos réactions

5 réponses

Avatar
GD
Bonsour® Cervolent
;o)))
subtilité sémantique du terme "difference between two dates"

il ne s'agit que d'un phénoméne de bord, qui dépend essentiellement de la
fonction DATEDIF et de la façon dont elle à été programmée...
celle-ci ne tient pas compte de l'heure ;o)))
ex: 30/06/2005 00:00:00 est différent de 30/06/2005 23:59:59
l'intervalle correspond à une journée !!!!
au regard de cela , dans cette fonction (Différence entre bornes) le
programmeur a semble-t-il
(l'heure étant 00:00:00 pure hypothése ????) volontairement exclu l'une des
bornes.

d'ailleurs à titre de vérification :
B5="01/07/1997"
B6="30/06/2005" + 1 ' soit 01/07/2005 :o)))
les formules en cause affichent bien 28 ans pile !!!


ou va-t-on si l'on ne peut plus faire confiance au site d'excellabo, ni aux
frères V ????
;o)))
@+
wrote:
Salut à tous,

Je recherche une formule me permettant de trouver l'écart entre 2
dates en
jours, mois, année ... peu importe l'ordre d'affichage ...
J'ai bien vu les fils concernant ce sujet et le site d'excellabo ...
en admettant qu'en B5 j'ai la date d'entrée en service soit : 01/07/97
en B6 la date de sortie de a société : 30/06/05
avec les 2 formules suivantes j'ai le même résultat erroné ...
1) =SUPPRESPACE(SI(B6-B5;TEXTE(DATEDIF(B5;B6;"y");"[>1]0""
ans"";[>]""1 an"";")&TEXTE(DATEDIF(B5;B6;"ym");"[>] 0"" mois
"";")&TEXTE(DATEDIF(B5;B6;"md");"[>1]0"" jours"";[>]""1 jour"";");"0
jour"))

2)

=SI(ET(DATEDIF(B5;B6;"y")=0;DATEDIF(B5;B6;"ym")=0;DATEDIF(B5;B6;"md")=0);0&"


jour";SI(DATEDIF(B5;B6;"y")<>0;DATEDIF(B5;B6;"y")&SI(DATEDIF(B5;B6;"y")>1;"

ans ";" an ");"")&SI(DATEDIF(B5;B6;"ym")<>0;DATEDIF(B5;B6;"ym")&" mois

";"")&SI(DATEDIF(B5;B6;"md")<>0;DATEDIF(B5;B6;"md")&SI(DATEDIF(B5;B6;"md")>1

;"
jours";" jour");""))

soit les résultats suivants : 7 ans 11 mois 29 jours
c'est faux ça fait 8 ans pile ... comment ça s'fait ... quelqu'un
a-t-il la
solution ???

Je m'suis p't'ete trompé quelque part

Merci d'avance pour vos réactions


Avatar
Cervolent
Salut GD
Merci de ta rapidité ... si j'ai bien compris je rajoute 1 jour donc sur
chaque date fin dans la formule ?

=SUPPRESPACE(SI(B6-B5;TEXTE(DATEDIF(B5;B6+1;"y");"[>1]0"" ans "";[>]""1
an"";")&TEXTE(DATEDIF(B5;B6+1;"ym");"[>] 0"" mois
"";")&TEXTE(DATEDIF(B5;B6+1;"md");"[>1]0"" jours"";[>]""1 jour"";");"0 jour"))

je connais excellabo mais c'est qui les frères V ???

ou va-t-on si l'on ne peut plus faire confiance au site d'excellabo, ni aux
frères V ????


Avatar
GD
;o)))
c'est comme tu le sent ....
selon que la date de fin à été travaillée ou non ;o)

;o)))
je connais excellabo mais c'est qui les frères V ???
http://minilien.com/?T9mrEyerP8


@+

Avatar
Cervolent
Un grand merci GD
A bientôt pour de nouvelles aventures ...


;o)))
c'est comme tu le sent ....
selon que la date de fin à été travaillée ou non ;o)

;o)))
je connais excellabo mais c'est qui les frères V ???
http://minilien.com/?T9mrEyerP8


@+






Avatar
Cervolent
GD je me permet de te relancer par rapport à ce que tu m'as filer comme tuyau
...

J'ai fait l'essai sur les series suivantes :
1er essai :
en B1 : 15/03/05
en B2 : 31/03/05
nombre de jours les séparant = 17 jours (ce qui est juste)

s'il est saisie en B1 : 15/03/05
en B2 : 30/04/05
alors le nombre de jour passe de 17 à 16 jours (il ya pourtant 1 mois et 17
jours)

2eme essai "Encore pire" si je peux me permettre :
en B1 : 29/02/04 (année bisextile)
en B2 : 01/03/04
nombre de jours les séparant = 2 jours (ce qui est juste)
en B1 : 29/02/04
en B2 : 01/04/04
alors le nombre de jour passe de 2 à 4 jours (il y a pourtant 1 mois et 2
jours)

Quézaco ? je fais confiance à excellabo et maintenant aux fréres V >;-)))

Cette formule doit permettre de gérer les entrées et sorties de la société
donc le calcul doit s'effectuer dans 1 seule cellule et sur les ans, mois, et
jours.
La date de début et la date de fin sont à prendre en compte dans le calcul.
C'est pour cela que je rajoute 1 jour à la date de fin.

=SUPPRESPACE(SI((B2-B1);TEXTE(DATEDIF(B1;B2+1;"y");"[>1]0"" ans "";[>]""1
an"";")&TEXTE(DATEDIF(B1;B2+1;"ym");"[>] 0"" mois
"";")&TEXTE(DATEDIF(B1;B2+1;"md");"[>1]0"" jours"";[>]""1 jour"";");"0 jour"))

Merci de ton aide ...