Formule DATEDIF fonctionne mal

Bonjour,

Je me permet de vous solliciter car j'ai un problème avec la formule DATEDIF.

Voici les pré requis utilisés:

Date Début: Cellule A1: 18/01/2018

Date Fin: Cellule B1: 19/01/2018

Lorsque j'utilise la syntaxe suivante, il me donne la valeur "1" alors que je devrais avoir 2

=Datedif(A1;B1;"d")

J'utilise peut être la mauvaise formule mais je ne vois pas laquelle utiliser.

D'avance merci pour vos aides.

Bonjour,

DATEDIF pose des problèmes, ce n'est pas nouveau, et il vaut sans doute mieux procéder autrement, mais au cas particulier, calculant la différence entre les deux dates, cette différence est bien de 1 !

Alors tout dépend de ce que tu calcules.... Tu calcules un âge, la première date étant la date de naissance, l'âge sera bien de 1, car à la naissance il est de 0 ! Tu calcules une ancienneté de service, la première date étant le premier jour de prise de service, là tu en es au 2e et c'est bien 2 qu'il faut.... etc.

Une formule ne remplace jamais le raisonnement humain à qui il appartient de décider de ce qu'il calcule...

Au demeurant, si tu cherches une différence en jours, tu fais simplement B1-A1, et tu apportes un correctif de +1 si la date de départ et la date d'arrivée sont toutes deux incluses dans l'intervalle recherché.

Cordialement.

Bonjour

1 jour d'écart pourtant

ci-joint

EDIT : merci à M.Ferrand que je salut au passage

crdlt,

André

132datedif-test001.xlsx (14.33 Ko)

Bonjour,

DATEDIF pose des problèmes, ce n'est pas nouveau, et il vaut sans doute mieux procéder autrement, mais au cas particulier, calculant la différence entre les deux dates, cette différence est bien de 1 !

Alors tout dépend de ce que tu calcules.... Tu calcules un âge, la première date étant la date de naissance, l'âge sera bien de 1, car à la naissance il est de 0 ! Tu calcules une ancienneté de service, la première date étant le premier jour de prise de service, là tu en es au 2e et c'est bien 2 qu'il faut.... etc.

Une formule ne remplace jamais le raisonnement humain à qui il appartient de décider de ce qu'il calcule...

Au demeurant, si tu cherches une différence en jours, tu fais simplement B1-A1, et tu apportes un correctif de +1 si la date de départ et la date d'arrivée sont toutes deux incluses dans l'intervalle recherché.

Cordialement.

Merci pour votre retour. En fait, je souhaite calculer le nombre de jours de formation dans un service. Je pensais qu'il y avait une "meilleure" formule que B1-A1+1

DATEDIF pose des problèmes, ce n'est pas nouveau, et il vaut sans doute mieux procéder autrement, mais au cas particulier, calculant la différence entre les deux dates, cette différence est bien de 1 !

Bonjour MFerrand

C'est pourtant très pratique pour calculer les âges !! quels problèmes ?

Bonjour Steelson

@Black-manda

Merci pour votre retour. En fait, je souhaite calculer le nombre de jours de formation dans un service. Je pensais qu'il y avait une "meilleure" formule que B1-A1+1

Idée:

Et, en essayant de calculer les heures restantes + jour(s), mois

crdlt,

André

Salut Steelson !

C'est pourtant très pratique pour calculer les âges !! quels problèmes ?

Alors côté pratique je ne trouve pas ! Tu veux calculer un âge en années mois jours, cela te fait une formule avec au moins 3 DATEDIF, du TEXTE et éventuellement quelques autres conditions, on a fait plus pratique !

Il y a d'autre part des erreurs récurrentes signalées notamment sur des différences en mois lorsque les dates sont sur les derniers jours de mois, expliquées par le fait que si le premier mois est à 31 le second à 30 (ou 28...) cela escamote un mois pour cette raison...

Je dois dire que je n'ai pas cherché à l'expérimenter, mais étant donné que Microsoft déconseille son utilisation depuis longtemps, a cessé de la documenter depuis les nouvelles versions (2007), que son emploi n'est pas particulièrement convivial, il y a longtemps que je suis passé à une fonction perso pour calculer un âge, fonction qui accessoirement peut me fournir la différence entre deux dates...

Je tape : =AGE(dateN), j'obtiens l'âge en années

Je tape : =AGE(dateN;"m"), je l'obtiens en années et mois

Je tape : =AGE(dateN;"j"), je l'obtiens en années, mois, jours

Je tape : =AGE(dateN;"j";dateA) j'obtiens l'âge en années, mois, jours à la dateA indiquée...

Là c'est tout de même plus pratique !

En outre, il n'est plus utile de faire état de l'incurie (le mot est faible à mon sens, et incurie volontaire qui plus est) tout à fait notoire de Microsoft en matière de dates... ainsi ma fonction corrigera le cas échéant l'erreur du 29 février 1900 d'une part, et opèrera également sur des dates antérieures à 1900 !

Elle ne fait pas tout cependant, elle ne basculera pas en équivalences calendrier Julien dans les cas où ce serait nécessaire... (c'est un autre travail auquel je n'ai pas encore trouvé le temps de m'atteler...) Je ne pourrais donc pas actuellement obtenir l'âge exact d'une russe née en Russie avant 1919...

La chose est cependant faisable, mais ce n'est sûrement pas Microsoft qui réalisera une telle fonction...

Cordialement.

et tu le fais aussi en calendrier grégorien ou même révolutionnaire ? lol

merci pour cette info

En grégorien, on y est ! Pour le calendrier révolutionnaire, je suis déjà passé sur une question sur le sujet, mais je ne me suis encore jamais penché sur ce problème. Je crois que des règles de conversion existent déjà et le problème se limite à une conversion...

J'avais commencé à la suite d'un sujet, à établir un afficheur de date, utilisant le calendrier VBA mais basculant en dates juliennes en deçà du 15 octobre 1582, moins un jour, on affiche 4 octobre 1582, et en remontant on rétablit les 29 février des années séculaires divisibles par 400. C'est une conversion à partir du calendrier VBA, avoir une équivalence du numéro de série "réel" avec un numéro correspondant à la date affichée (sachant que pour les 29 février, il faut forcer en texte car VBA refuserait de les afficher...)

Il me fallait affiner encore, et la logique était d'introduire un paramètre régional pour une adaptation selon les pays (ou régions car les configurations étatiques ont variés). Pour la France on passe de grégorien au julien en passant du 20 décembre 1582 au 9 décembre (mais étant niçois, Nice y était passé en octobre avec la Savoie... )

Mais j'ai pour le moment trouvé que c'était un trop gros boulot pour m'y lancer...

Rechercher des sujets similaires à "formule datedif fonctionne mal"