Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Calcul erroné avec DATEDIF

6 réponses
Avatar
dan84250
Bonjour,

Mon niveau de "confiance" vis =E0 vis de la fonction DATEDIF est en
baisse depuis que j'obtiens des r=E9sultats curieux en utilisant cette
fonction.

Exemple: date fin : 03/03/2003, date d=E9but 31/01/2003

DATEDIF (d=E9but;fin;"ym")=3D 1
DATEDIF (d=E9but;fin;"md")=3D 0

Pourquoi n'obtient-t-on pas 1 mois et 3 jours?

Merci de vos r=E9ponses

6 réponses

Avatar
phil
Salut
le résultat est bizarre d'accord, mais il s'explique
date de départ 31/01/2003
+1 mois égale 31/02/2003
mais comme le mois de février n'a que 28 jours excel prend
jusqu'au 28 et il reste (31-28) 3 jours à rajouter donc le 03/03/2003
donc pour excel, il y a juste un mois de différence !

exemple date fin : 03/03/2003, date début 28/01/2003

DATEDIF (début;fin;"ym")= 1
DATEDIF (début;fin;"md")= 3
du 28 janvier au 28 février = 1 mois et jusqu'au 3 mars 3 jours : 1 mois et
3 jours
si ta date de départ est le 31/01/2003, il y a 3 jours en moins donc 1 mois
et 0 jours

Donc ton problème c'est en partant du 31/01/2003 si on ajoute un mois quand
est-ce que tu veux que ça tombe ?
Parce que si pour toi 31/01/2003 + 1 mois ça tombe le 28/02/2003
t'auras un problème parce qu'alors 28/01/2003 + 1 mois tombe aussi le
28/02/2003
et 29/01/2003 + 1 mois tombe à nouveau le 28/02/2003

Bref son calcul est peut être bizarre mais il est correct.
Voilà pour l'explication, qui permet de comprendre le résulat dans la
"logique" d'excel.

@+Phil

"dan84250" a écrit dans le message de news:

Bonjour,

Mon niveau de "confiance" vis à vis de la fonction DATEDIF est en
baisse depuis que j'obtiens des résultats curieux en utilisant cette
fonction.

Exemple: date fin : 03/03/2003, date début 31/01/2003

DATEDIF (début;fin;"ym")= 1
DATEDIF (début;fin;"md")= 0

Pourquoi n'obtient-t-on pas 1 mois et 3 jours?

Merci de vos réponses
Avatar
Gros Minet
Bonjour !

Avec ta date de fin en A2, pour obtenir le nb de jours entre cette date et
le début de "son" mois :

¢-(DATE(ANNEE(A2);MOIS(A2);JOUR(1))-1) à remettre au format standard.

J'espère que ça t'aidera.

Cordialement.

Gros Minet.

"dan84250" a écrit dans le message de news:

Bonjour,

Mon niveau de "confiance" vis à vis de la fonction DATEDIF est en
baisse depuis que j'obtiens des résultats curieux en utilisant cette
fonction.

Exemple: date fin : 03/03/2003, date début 31/01/2003

DATEDIF (début;fin;"ym")= 1
DATEDIF (début;fin;"md")= 0

Pourquoi n'obtient-t-on pas 1 mois et 3 jours?

Merci de vos réponses
Avatar
AV
C'est le problème d'une fonction qui raisonne en mois de durée égale alors que
ce n'est pasle cas...
31/01/2003 + 1 mois = ... 31/02/2003 !
Comme cette date n'est pas valide, XL la transforme "logiquement" en
03/03/2003
D'ou le "résultat curieux" mais "logique" de 0
Pas le choix pour ce disfonctionnement de DATEDIF : c'est à prendre ou à
laisser

AV
Avatar
Antoine
Bonjour,

La solution au problème qui se pose à toi peut être de passer par :
ÚTE(ANNEE(B1);MOIS(B1)+1;JOUR(B1))
En mettant 25/2/06 en B1, tu obtiendras bien 25/03/06 en résultat !...

Antoine

"AV" a écrit dans le message de news:

C'est le problème d'une fonction qui raisonne en mois de durée égale alors
que
ce n'est pasle cas...
31/01/2003 + 1 mois = ... 31/02/2003 !
Comme cette date n'est pas valide, XL la transforme "logiquement" en
03/03/2003
D'ou le "résultat curieux" mais "logique" de 0
Pas le choix pour ce disfonctionnement de DATEDIF : c'est à prendre
ou à
laisser

AV




Avatar
AV
| La solution au problème qui se pose à toi

J'ai pas de problème...
J'eussssplique !

AV
Avatar
AV
"..La solution au problème qui se pose à toi peut être de passer par :
ÚTE(ANNEE(B1);MOIS(B1)+1;JOUR(B1))
En mettant 25/2/06 en B1, tu obtiendras bien 25/03/06 en résultat !."

Hum...hum...
Et en mettant 31/01/03 en B1 tu obtiendras quoi.. ?
---> 03/03/2003 .
voir explication, au-dessus.

AV