DATEDIF

andré

XLDnaute Barbatruc
Bonjour à tous,

J'ai un problème avec la fonction DATEDIF, et comme il n'y a pas d'aide MS, je m'adresse à vous (voir pièce jointe).

Les résultats obtenus ne sont pas exacts, à moins que ce soit la formule qui ne l'ai pas (plus que probable).

Quelqu'un pourrait-il me signaler où j'ai fait l'erreur, moi je ne la trouve pas.

Merci d'avance.
Ândré.



[file name=datedif_V1.zip size=3728]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/datedif_V1.zip[/file]
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re

Un nouveau post juste pour signaler cette fonction de Laurent Longre qui permet d'eviter les 's' non nécessaires ainsi que les 0

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

andré

XLDnaute Barbatruc
Resalut,

Suite à la remarque de Pascal76, je me suis dit que l'erreur n'en était peut-être pas une, mais bien un problème d'affichage.

Si deux dates différentes renvoient le même nombre de jours de différence, il se pourrait que l'une soit 14 jours 00:00 et l'autre 14 jours 24:00 au lieu de 15 jours 00:00

Pour m'en assurer j'ai fait B1-A1 en format standard, que j'ai copié vers le bas, le nombre total de jours est exact.

Deux approches possibles :
ou bien essayer de transformer un nombre total de jours en années, mois et jours (pas facile !)
ou bien trouver l'astuce pour ajouter 1/10 de seconde au résultat de la fonction DATEDIF de sorte à faire basculer le 24:00 en 00:00 (pas encore trouvé).

Ândré.
 

andré

XLDnaute Barbatruc
Bonjour,

En apportant le correctif suivant :

=DATEDIF(A1;B1;'y')&' ans '&DATEDIF(A1;B1;'ym')&' mois '&DATEDIF(A1;B1;'md')+(JOUR(A1)>JOUR(B1))*1&' jours'

la formule semble renvoyer un résultat exact.
C'est déjà un premier pas !

Je continue à mettre la formule au point (hh:mm:ss et orthographe).

Ândré.
 
J

JJ59

Guest
Bonsoir à tous

Petite information.

Extrait d'un article d'avril 2004.
'Par convention Windows compte les jours à partir du 1er Janvier 1900, qui est le jour 1.... Pour anecdote, sachez que ce système de calendrier est faux! Il insère un 29 février dans l'année 1900 qui pourtant n'était pas bissextile.'

il existe une extension sur internet

www.j-walk.com/ss/excel/files/xdate.htm
'Cette extension est capable de calculer n'importe quelle date entre les années 0100 et 9999.'

Extrait d'un article paru en avril 2004 dans le mensuel
Windows XP.

Bonsoir à tous.

Jean-Jacques
 

Jam

XLDnaute Accro
Salut à tous,

J'apporte un complément (je découvre la rubrique suite à une recherche sur cette fonction) à l'erreur apparente lié aux années bissextile dans l'utilisation de la fonction DATEDIF(Date1;Date2;TypeCalcul):

En fait quand on utilise l'option 'md' la fonction se base sur la première date pour savoir si elle prend en compte le 29ème jour de février. La seconde date n'est pas prise en compte. Elle utilise 'l'année' de la première date pour les deux. D'où les écarts constatés.

Autre précision: l'aide concernant cette fonction 'cachée ?' n'apparaît pas dans les aides des versions 97 et 2000 d'Excel. Cependant cette fonction existe depuis la version 5 d'Excel.

Bonne journée à tous.
 

Tibo

XLDnaute Barbatruc
Salut à tous,

Effectivement, l'aide est accessible (pas directement, d'accord...).

Démo avec XL 2000 :

Taper =DATEDIF(

puis taper sur le = à gauche de la barre de formule.

Cliquer sur le ? pour obtenir l'aide, puis sur Aide sur cette fonction, etc.

Et on obtient une aide complète sur cette fonction.

Voilou

@+

Edit : salut Jam, je t'avais pas vu. Pour 97 et 2002, je peux pas dire, je n'ai que 2000.

@+

Message édité par: tibo, à: 28/04/2006 15:50
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote