Erreur calcul avec Datedif

5 réponses
Avatar
Fredo(67)
Bonjour,

J'utilise la fonction Datedif depuis pas mal de temps, elle fonctionne
tr=E8s bien
Enfin jusqu'=E0 hier, parceque depuis j'ai un drole de r=E9sultat :

la Cellule K16 contient la date 29/02/1988
La fonction DATEDIF entre aujourd'hui et cette date
soit
=3DSI(ET(DATEDIF(K16;AUJOURDHUI();"y")=3D0;DATEDIF(K16;AUJOURDHUI();"ym")=
=3D0;DATEDIF(K16;AUJOURDHUI();"md")=3D0);
0&"
jour";SI(DATEDIF(K16;AUJOURDHUI();"y")<>0;DATEDIF(K16;AUJOURDHUI();"y")&SI(=
DATEDIF(K16;AUJOURDHUI();"y")>1;"
ans ";" an
");"")&SI(DATEDIF(K16;AUJOURDHUI();"ym")<>0;DATEDIF(K16;AUJOURDHUI();"ym")&=
"
mois
";"")&SI(DATEDIF(K16;AUJOURDHUI();"md")<>0;DATEDIF(K16;AUJOURDHUI();"md")&S=
I(DATEDIF(K16;AUJOURDHUI();"md")>1;"
jours";"jour");""))
donne le r=E9sultat suivant :

23 ans 10 mois 121 jours


Par ailleur cette variante de la formule
=3DSI(AUJOURDHUI()-K16;TEXTE(DATEDIF(K16;AUJOURDHUI();"y");"[>1]0""
ans"";[>]""1 an"";")&TEXTE(DATEDIF(K16;AUJOURDHUI();"ym");"[>] 0""
mois "";")&TEXTE(DATEDIF(K16;AUJOURDHUI();"md");"[>1]0"" jours"";
[>]""1 jour"";");"0 jour")
Donne le m=EAme r=E9sultat.


Mais si on a 121 jours, elle devrait convertir ces jours en mois.
Par ailleurs la bonne r=E9ponse serait plut=F4t 8 jours

d'o=F9 peut provenir cette erreur

Pour info je suis sur
Excel 2007 sur un Windows7 X64

Jouer avec le calcul au format de calendrier depuis 1904 ne change
rien au r=E9sultat.


Comment corriger cela. ?

5 réponses

Avatar
DanielCo
Bonjour,

Il y a une erreur connue ((c) Modeste) :
Attention DATEDIF est buggé
lorsque la date la plus récente :
est une année bissextile
ET
le mois est janvier
ET
le jour inferieur au jour de la date la plus ancienne :
ex :
24/06/1975 16/01/2008 136
ÚTEDIF(A1;B1;"md")

Daniel


Bonjour,

J'utilise la fonction Datedif depuis pas mal de temps, elle fonctionne
très bien
Enfin jusqu'à hier, parceque depuis j'ai un drole de résultat :

la Cellule K16 contient la date 29/02/1988
La fonction DATEDIF entre aujourd'hui et cette date
soit
=SI(ET(DATEDIF(K16;AUJOURDHUI();"y")=0;DATEDIF(K16;AUJOURDHUI();"ym")=0;DATEDIF(K16;AUJOURDHUI();"md")=0);
0&"
jour";SI(DATEDIF(K16;AUJOURDHUI();"y")<>0;DATEDIF(K16;AUJOURDHUI();"y")&SI(DATEDIF(K16;AUJOURDHUI();"y")>1;"
ans ";" an
");"")&SI(DATEDIF(K16;AUJOURDHUI();"ym")<>0;DATEDIF(K16;AUJOURDHUI();"ym")&"
mois
";"")&SI(DATEDIF(K16;AUJOURDHUI();"md")<>0;DATEDIF(K16;AUJOURDHUI();"md")&SI(DATEDIF(K16;AUJOURDHUI();"md")>1;"
jours";"jour");""))
donne le résultat suivant :

23 ans 10 mois 121 jours


Par ailleur cette variante de la formule
=SI(AUJOURDHUI()-K16;TEXTE(DATEDIF(K16;AUJOURDHUI();"y");"[>1]0""
ans"";[>]""1 an"";")&TEXTE(DATEDIF(K16;AUJOURDHUI();"ym");"[>] 0""
mois "";")&TEXTE(DATEDIF(K16;AUJOURDHUI();"md");"[>1]0"" jours"";
[>]""1 jour"";");"0 jour")
Donne le même résultat.


Mais si on a 121 jours, elle devrait convertir ces jours en mois.
Par ailleurs la bonne réponse serait plutôt 8 jours

d'où peut provenir cette erreur

Pour info je suis sur
Excel 2007 sur un Windows7 X64

Jouer avec le calcul au format de calendrier depuis 1904 ne change
rien au résultat.


Comment corriger cela. ?
Avatar
Fredo(67)
Ok, je pensais avoir la berlue.

Y'a t'il moyen de contourner cette erreur, ou faut il attendre de
finir le mois de janvier
Car à te lire j'ai compris que cela n'arrive qu'avec le mois de
janvier des années bisextiles...


Cordialement



On 6 jan, 15:59, DanielCo wrote:
Bonjour,

Il y a une erreur connue ((c) Modeste) :
Attention DATEDIF est bugg
lorsque la date la plus r cente :
     est une ann e bissextile
ET
    le mois est janvier
ET
le jour inferieur au jour de la date la plus ancienne :
ex :
24/06/1975      16/01/2008      136
ÚTEDIF(A1;B1;"md")

Daniel



> Bonjour,

> J'utilise la fonction Datedif depuis pas mal de temps, elle fonctionne
> tr s bien
> Enfin jusqu' hier, parceque depuis j'ai un drole de r sultat :

> la Cellule K16 contient la date 29/02/1988
> La fonction DATEDIF entre aujourd'hui et cette date
> soit
> =SI(ET(DATEDIF(K16;AUJOURDHUI();"y")=0;DATEDIF(K16;AUJOURDHUI();"ym ")=0;DAT­EDIF(K16;AUJOURDHUI();"md")=0);
> 0&"
> jour";SI(DATEDIF(K16;AUJOURDHUI();"y")<>0;DATEDIF(K16;AUJOURDHUI();"y") &SI(­DATEDIF(K16;AUJOURDHUI();"y")>1;"
> ans ";" an
> ");"")&SI(DATEDIF(K16;AUJOURDHUI();"ym")<>0;DATEDIF(K16;AUJOURDHUI();"y m")&­"
> mois
> ";"")&SI(DATEDIF(K16;AUJOURDHUI();"md")<>0;DATEDIF(K16;AUJOURDHUI();"md ")&S­I(DATEDIF(K16;AUJOURDHUI();"md")>1;"
> jours";"jour");""))
> donne le r sultat suivant :

> 23 ans 10 mois 121 jours

> Par ailleur cette variante de la formule
> =SI(AUJOURDHUI()-K16;TEXTE(DATEDIF(K16;AUJOURDHUI();"y");"[>1]0""
> ans"";[>]""1 an"";")&TEXTE(DATEDIF(K16;AUJOURDHUI();"ym");"[>] 0""
> mois "";")&TEXTE(DATEDIF(K16;AUJOURDHUI();"md");"[>1]0"" jours"";
> [>]""1 jour"";");"0 jour")
> Donne le m me r sultat.

> Mais si on a 121 jours, elle devrait convertir ces jours en mois.
> Par ailleurs la bonne r ponse serait plut t 8 jours

> d'o peut provenir cette erreur

> Pour info je suis sur
> Excel 2007 sur un Windows7 X64

> Jouer avec le calcul au format de calendrier depuis 1904 ne change
> rien au r sultat.

> Comment corriger cela. ?- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -
Avatar
news.free.fr
Regarde la fonction perso de Frédéric Sigonneau :

http://www.excelabo.net/trucs/temps_ecoule_entre_deux_dates

Daniel
Avatar
news.free.fr
Regarde la fonction perso de Frédéric Sigonneau :

http://www.excelabo.net/trucs/temps_ecoule_entre_deux_dates

Daniel


Ok, je pensais avoir la berlue.

Y'a t'il moyen de contourner cette erreur, ou faut il attendre de
finir le mois de janvier
Car à te lire j'ai compris que cela n'arrive qu'avec le mois de
janvier des années bisextiles...


Cordialement



On 6 jan, 15:59, DanielCo wrote:
Bonjour,

Il y a une erreur connue ((c) Modeste) :
Attention DATEDIF est bugg
lorsque la date la plus r cente :
     est une ann e bissextile
ET
    le mois est janvier
ET
le jour inferieur au jour de la date la plus ancienne :
ex :
24/06/1975      16/01/2008      136
ÚTEDIF(A1;B1;"md")

Daniel



Bonjour,



J'utilise la fonction Datedif depuis pas mal de temps, elle fonctionne
tr s bien
Enfin jusqu' hier, parceque depuis j'ai un drole de r sultat :
la Cellule K16 contient la date 29/02/1988
La fonction DATEDIF entre aujourd'hui et cette date
soit
=SI(ET(DATEDIF(K16;AUJOURDHUI();"y")=0;DATEDIF(K16;AUJOURDHUI();"ym")=0;DAT­EDIF(K16;AUJOURDHUI();"md")=0);
0&"
jour";SI(DATEDIF(K16;AUJOURDHUI();"y")<>0;DATEDIF(K16;AUJOURDHUI();"y")&SI(­DATEDIF(K16;AUJOURDHUI();"y")>1;"
ans ";" an
");"")&SI(DATEDIF(K16;AUJOURDHUI();"ym")<>0;DATEDIF(K16;AUJOURDHUI();"ym")&­"
mois
";"")&SI(DATEDIF(K16;AUJOURDHUI();"md")<>0;DATEDIF(K16;AUJOURDHUI();"md")&S­I(DATEDIF(K16;AUJOURDHUI();"md")>1;"
jours";"jour");""))
donne le r sultat suivant :



23 ans 10 mois 121 jours



Par ailleur cette variante de la formule
=SI(AUJOURDHUI()-K16;TEXTE(DATEDIF(K16;AUJOURDHUI();"y");"[>1]0""
ans"";[>]""1 an"";")&TEXTE(DATEDIF(K16;AUJOURDHUI();"ym");"[>] 0""
mois "";")&TEXTE(DATEDIF(K16;AUJOURDHUI();"md");"[>1]0"" jours"";
[>]""1 jour"";");"0 jour")
Donne le m me r sultat.



Mais si on a 121 jours, elle devrait convertir ces jours en mois.
Par ailleurs la bonne r ponse serait plut t 8 jours
d'o peut provenir cette erreur



Pour info je suis sur
Excel 2007 sur un Windows7 X64



Jouer avec le calcul au format de calendrier depuis 1904 ne change
rien au r sultat.



Comment corriger cela. ?- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -
Avatar
Fredo(67)
bonjour

merci pour cette reponse rapide.
Cela m'enlève une sacré épine du pied

Et la fonction dont tu m'a indiqué le lien focntionne parfaitement.

Merci








On 6 jan, 17:15, news.free.fr wrote:
Regarde la fonction perso de Frédéric Sigonneau :

http://www.excelabo.net/trucs/temps_ecoule_entre_deux_dates

Daniel



> Ok, je pensais avoir la berlue.

> Y'a t'il moyen de contourner cette erreur, ou faut il attendre de
> finir le mois de janvier
> Car à te lire j'ai compris que cela n'arrive qu'avec le mois de
> janvier des années bisextiles...

> Cordialement

> On 6 jan, 15:59, DanielCo wrote:
>> Bonjour,

>> Il y a une erreur connue ((c) Modeste) :
>> Attention DATEDIF est bugg
>> lorsque la date la plus r cente :
>>      est une ann e bissextile
>> ET
>>     le mois est janvier
>> ET
>> le jour inferieur au jour de la date la plus ancienne :
>> ex :
>> 24/06/1975      16/01/2008      136
>> ÚTEDIF(A1;B1;"md")

>> Daniel

>>> Bonjour,

>>> J'utilise la fonction Datedif depuis pas mal de temps, elle fonctionn e
>>> tr s bien
>>> Enfin jusqu' hier, parceque depuis j'ai un drole de r sultat :
>>> la Cellule K16 contient la date 29/02/1988
>>> La fonction DATEDIF entre aujourd'hui et cette date
>>> soit
>>> =SI(ET(DATEDIF(K16;AUJOURDHUI();"y")=0;DATEDIF(K16;AUJOURDHUI();" ym")=0;DAT­­EDIF(K16;AUJOURDHUI();"md")=0);
>>> 0&"
>>> jour";SI(DATEDIF(K16;AUJOURDHUI();"y")<>0;DATEDIF(K16;AUJOURDHUI();"y ")&SI(­­DATEDIF(K16;AUJOURDHUI();"y")>1;"
>>> ans ";" an
>>> ");"")&SI(DATEDIF(K16;AUJOURDHUI();"ym")<>0;DATEDIF(K16;AUJOURDHUI(); "ym")&­­"
>>> mois
>>> ";"")&SI(DATEDIF(K16;AUJOURDHUI();"md")<>0;DATEDIF(K16;AUJOURDHUI();" md")&S­­I(DATEDIF(K16;AUJOURDHUI();"md")>1;"
>>> jours";"jour");""))
>>> donne le r sultat suivant :

>>> 23 ans 10 mois 121 jours

>>> Par ailleur cette variante de la formule
>>> =SI(AUJOURDHUI()-K16;TEXTE(DATEDIF(K16;AUJOURDHUI();"y");"[>1]0""
>>> ans"";[>]""1 an"";")&TEXTE(DATEDIF(K16;AUJOURDHUI();"ym");"[>] 0""
>>> mois "";")&TEXTE(DATEDIF(K16;AUJOURDHUI();"md");"[>1]0"" jours"";
>>> [>]""1 jour"";");"0 jour")
>>> Donne le m me r sultat.

>>> Mais si on a 121 jours, elle devrait convertir ces jours en mois.
>>> Par ailleurs la bonne r ponse serait plut t 8 jours
>>> d'o peut provenir cette erreur

>>> Pour info je suis sur
>>> Excel 2007 sur un Windows7 X64

>>> Jouer avec le calcul au format de calendrier depuis 1904 ne change
>>> rien au r sultat.

>>> Comment corriger cela. ?- Masquer le texte des messages précédent s -

>> - Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -

- Afficher le texte des messages précédents -