DATEDIF ou comment calculer un écart entre deux dates

Excel recèle des trésors cachés. Sans rentrer dans la chasse aux « Easter eggs« , il existe une formule non documentée qui a pourtant son charme auprès des personnes travaillant dans les ressources humaines et des gestionnaires de projet.

Cette formule, c’est DATEDIF. Elle mesure la différence entre deux dates et l’affiche sous plusieurs formes. C’est très utiles pour calculer le nombre de mois (ou jours ou années) qui sépare deux événements, ou l’âge d’une personne, ou le nombre de jours sans incidents, etc…

Prenons un exemple:

datedif

La formule DATEDIF en pratique

Pour obtenir ces résultats, voici comment s’écrivent les formules :

=DATEDIF(A1;B1; « y »)
=DATEDIF(A1;B1; « m »)
=DATEDIF(A1;B1; « d »)

La première formule vous donne le nombre d’années terminées (donc il ne s’agit pas d’un arrondi!). La seconde le nombre de mois terminés et la troisième les jours.

Le premier argument représente la date la plus ancienne (dans l’exemple cellule A1), le deuxième argument doit contenir la date la plus récente des deux et enfin le troisième argument détermine comment sera affiché le résultat.

Il existe 6 méthodes pour afficher le résultat:

  • « y » renvoie les années sous forme de nombre entier
  • « m » renvoie les mois sous forme de nombre entier
  • « d » renvoie les jours sous forme de nombre entier
  • « ym » renvoie le nombre de mois entre les dates, sans tenir compte des jours, ni des années (dans notre exemple, ce serait 4, soit le nombre de mois entre janvier et mai)
  • « yd » renvoie le nombre de jours entre les dates, sans tenir compte des années.
  • « md » renvoie le nombre de jours entre les dates, sans tenir compte des mois ni des années.

Inspirés? A vous de tester cette fonction et de l’intégrer de manière inventive dans vos tableaux et formules. Mais attention, comme mentionné au début, cette formule n’est pas référencée.  Elle ne figure pas dans la liste des formules sur le Ruban dans Excel. Et vous ne trouverez donc pas d’assistance dans Excel pour cette formule de la part de Microsoft.

Par contre vous aurez toutes les informations en français et en détail ici: DATEDIF – fonction cachée d’Excel

Bons calculs !



21 réflexions sur “DATEDIF ou comment calculer un écart entre deux dates”

  1. Bonjour,

    Je souhaite obtenir la différence de mois entre deux dates mais avec ces dates :

    Exemple :
    01/03/2016 –> 30/04/2016
    Dans ce cas j’ai bien 2 mois plein mais la formule me marque 1, or j’aimerais qu’elle inscrive 2. Pour avoir 2, il faudrait que j’inscrive 1/03/2016 –> 1/05/2016, ce que je ne veux pas faire.

    Est-ce possible?

    1. Bonjour,
      la formule ne considère pas qu’il s’agit de deux mois complets: le 30/4 est considéré comme ‘en cours’ et donc le mois d’avril n’est pas terminé. Cette plage a donc, pour la formule DATEDIF, une seul mois complet.

      Pour résoudre ce problème, vous ne devez pas modifier les données (les dates) mais la formule:
      =DATEDIF(date_de_debut;date_de_fin + 1;"m")

      Et voilà…

  2. Bonjour,

    Avant tout, merci pour cette astuce précieuse et très utile dans les RH également!
    Je me demandais si il n’y avait pas un autre « truc » qui me permettrait de déterminer le nombre de mois actifs sur une période donnée (ex: nombre de mois travaillés sur les 18 derniers mois) en partant des dates de contrats. J’avoue que je peine un peu à améliorer mon tableau, et que cocher les semaines travaillées sur un tableau, ce n’est pas ce qu’il y a de plus pratique.
    Une idée pour me dépanner?
    Merci pour ce coup de main et pour tous les autres;)

  3. Bonjour !
    Merci pour les conseils !
    Je me demandais s’il était possible de calculer le nombre de jours.. ouvrés ! (sans les samedis et dimanches) S’il y avait un moyen d’ajouter un p’tit quelque chose à la formule pour ça… 🙂
    Merci beaucoup !

  4. Bonjour
    Je voudrais savoir s’il existe une formule pour calculer le nombre de jours entre deux dates mais avec le détail pour chaque année.
    ex : début du contrat 01/02/2010 ; fin du contrat 30/09/2012
    Je voudrais le nombre de jours de 2010, 2011 et 2012

    Merci bien

    1. Bonjour, Si vous regardez les commentaires déjà postés, vous verrez que j’ai répondu non déjà. En tout cas, pas à ma connaissance. Mais il faudrait décomposer la formule avec autant d’années que nécessaire.

  5. Bonjour,
    Je voudrais calculer le nombre de jours entre deux dates mais avoir le détail par année.
    Exemple :
    Début du contrat 01/01/2010 ; fin de contrat 31/07/2013.
    Je voudrais le nombre de jours sur 2011, sur 2012 et enfin sur 2013.
    La fonction =DATEDIF(A1;B1; « d ») ne me donne que le total des jours sur les 3 années.

    J’essais donc de créer une formule a rallonge si(…, mais je me dis qu’il exsite peut etre une formule.

    Merci d’avance pour votre aide.

  6. Bonjour,

    En utilisant DATEDIF j’ai bien le nombre de jours de différence entre deux datesmais comment puis-je faire pour avoir un nombre négatif?
    Ex :
    Pour un suivi de formation, j’ai au jour d’aujourd’hui 08/08/14 une formation valible jusqu’au 10/08/14 (soit (+2 jours) et une formation qui n’est plus valable depuis le 06/08/14 (soit -2 jours).
    J’aimerai pour la formation encore valide avoir un chiffre positif, quant à la formation ayant dépassé l’échéance, j’aimerai avoir un chiffre négatif
    Merci pour votre aide.

    1. Bonjour Martine,
      J’ai regardé votre question mais la formule ne donne pas de chiffre négatif si vous ne mettez pas les cellules dans cet ordre. Par contre, il est possible de régler votre problème en compliquant un peu la formule. Si vous ajoutez une formule conditionnelle SI pour tester, et en fonction du résultat, vous faîtes apparaître la différence qui vous convient. Par exemple :
      Mettons la date du 6 en A1, celle du 8 en A2 et celle du 10 en A3
      =SI(A2[email protected]

  7. Je cherche comment formuler des différences de date avec les heures minutes et plus si affinités. Exemple : une personne née le 12 avril 2001 à 4 h le matin, elle a quel âge en année heure minute à 19 H 30 le 19 septembre 2013 ????

    1. Cette fonction ne permet pas de le faire de manière directe. Aussi, je ferais différemment, c’est à dire en découpant au maximum les éléments. C’est à dire, la différence en année dans une cellule, puis mois, puis jours et enfin, en découpant les heures, le calcul des heures et des minutes dans une autre cellule.
      Et si on souhaite tout dans une seule et unique cellule, alors on utilise la fonction concatener pour afficher les élements à la suite.
      A tester ?

  8. Il y en a beaucoup des formules cachées comme ça ? C’est étonnant, quel est l’intérêt de Microsoft à activer des formules sans les référencer ?

    1. J’en ai encore 2, mais il y en a plus. Je ne sais pas quel est l’intérêt au final, mais sans doute car ce sont des formules sans grand intérêt pour Microsoft.
      Et puis, les fonctions ne sont pas figées, on peut en créer soi-même. J’ai fait un billet sur ça d’ailleurs.

Répondre à Excel-Plus ! Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.