Souci avec la fonction DATEDIF

Résolu
Lili03100 Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   -  
Raymond PENTIER Messages postés 58988 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonsoir,

Je rencontre un souci avec la fonction DATEDIF : quand je veux calculer en mois la différence entre le 1er janvier 2021 et le 31 décembre 2021 soit dans la cellule B1 la fonction suivante =DATEDIF(A1;A2;"m"), le résultat obtenu donne 11 mois au lieu de 12 mois.

Savez-vous comment je peux résoudre cela ?



Configuration: Windows / Chrome 92.0.4515.131
A voir également:

3 réponses

Raymond PENTIER Messages postés 58988 Date d'inscription   Statut Contributeur Dernière intervention   17 353
 
Bonjour Lili.

Dans sa logique, la fonction DATEDIF compte bien 11 mois en faisant décembre-janvier, soit 12-1.
Mets plutôt comme formule =DATEDIF(A1;A2;"j")/12
1
brucine Messages postés 21656 Date d'inscription   Statut Membre Dernière intervention   3 422
 
Bonjour,

Non puisque DATEDIF est au format anglo-saxon: D et pas J et qu'il y a lieu (format nombre sans décimale) de diviser non par 12 mais par 30.
0
Raymond PENTIER Messages postés 58988 Date d'inscription   Statut Contributeur Dernière intervention   17 353
 
Veuillez m'excuser : brucine a corrigé ma faute d'inattention !
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonsoir

=DATEDIF(A1;A2+1;"m")

Cdlmnt
Via
0
Lili03100 Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci infinement Via55 mais ça ne fonctionne pas si par exemple je mets le 28/01/2021 et le 31/12/2021, ça affiche 11 mois
0
brucine Messages postés 21656 Date d'inscription   Statut Membre Dernière intervention   3 422
 
Bonsoir,

Via55 a raison: DATEDIF n'inclut pas la date "non terminée" (la dernière date) dans le calcul; pour ce faire en partant du 1er janvier, il faut donc soit ajouter 1 à la date de sortie, soit la mettre non pas au 31 décembre mais au 1er janvier de l'année suivante.

Si maintenant je pars du 28 janvier, je contredis ce comportement puisque, que je choisisse +1 ou à la main 01/01/22 ou 31/12/21, le résultat est le même, 11 mois et correct, montrant qu'alors que la "date non terminée" est cette fois-ci prise en compte.

Microsoft lui-même met en garde du comportement erratique de DATEDIF qui n'existe plus que pour rétrocompatibilité Lotus.

Il paraît donc plus sain d'utiliser:

=MAX(0;(ANNEE(B2+1)-ANNEE(A2-1))*12+MOIS(B2+1)-MOIS(A2-1)-1)

qui rend un résultat cohérent dans les 2 cas.
0
Lili03100 Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   1 > brucine Messages postés 21656 Date d'inscription   Statut Membre Dernière intervention  
 
Merci brucine pour cette précision
0