«

»

Différence entre 2 dates – DATEDIF

Effectuer une différence entre 2 dates n’est pas une chose facile à réaliser (dans Excel ou dans n’importe quel logiciel). Les écarts sur les mois ou les années sont à prendre en compte mais aussi la nature du résultat. Doit-on retourner le résultat en nombre de jours, de mois ou d’années ?

Problème posé par la différence entre 2 dates

Fonction_DatedifPrenons l’exemple suivant où nous avons 9 jours d’écart entre les 2 dates. Seulement, à y regarder de plus près, les 2 dates sont sur 2 mois différent.

Autrement dit, si nous voulons connaitre l’écart en nombre de mois, nous pourrions écrire la formule suivante avec fonction MOIS.

=MOIS(B1)-MOIS(B2)

Malheureusement pour nous, cette formule nous retourne la valeur 1 (cf l’image plus haut) or il n’y a pas 1 mois d’écart entre les dates.



Comment résoudre le problème

Comme l’exemple précédent l’a montré, une différence entre 2 dates n’est JAMAIS un calcul facile.

Et puis comment voulons-nous retourner le résultat ? Une différence sur les mois, sur les jours, sur les années ou à partir d’une année pleine ?

Pour réaliser ces calculs, Excel possède une fonction incroyable pour réaliser toutes les différences entre les dates, il s’agit de la fonction DATEDIF.

Seulement, cette fonction est cachée . Pour vous en rendre compte, il vous suffit d’appeler l’aide en ligne sur cette fonction ou de la chercher dans le menu d’insertion d’une fonction pour voir qu’elle n’est pas référencée ; et pourtant elle fonctionne  parfaitement (ils sont bizarre chez Microsoft ).

La fonction DATEDIF


La fonction DATEDIF a besoin de 3 paramètres pour fonctionner

  • une date
  • une seconde date (nécessairement supérieure à la première date)
  • le paramètre pour retourner l’écart.
=DATEDIF(date1;date2;paramètre)

Les 2 premiers paramètres de la fonction se comprennent d’eux-mêmes. Par contre, le troisième paramètre est de loin le plus important car c’est lui qui va déterminer le type de calcul d’écart qui sera réalisé.

En fait, si on souhaite déterminer le nombre d’années qui sépare 2 dates, nous mettrons comme paramètre la lettre y” (entre guillemet) pour indiquer qu’il s’agit des années (year en anglais ).

Si maintenant vous souhaitez connaitre le nombre de mois qui se sont écoulés entre 2 dates mais seulement pour les mois a comptabiliser au cours d’une année, vous écrirez comme 3ème paramètre “ym” (year month).

Le tableau ci-dessous vous permet de visualiser toutes les valeurs que la fonction peut retourner en fonction de la valeur du 3ème paramètre (il faut toujours mettre le troisième paramètre entre guillemets).

 

 



Exemple d’application

Appliquons la fonction DATEDIF dans un cas concret : déterminer l’âge précis en nombre d’années, mois et jours.

En colonne B, nous avons les dates anniversaires de nos employés et en D1, nous avons la date du jour retourner par la fonction AUJOURDHUI. Double-cliquez dans les cellules pour voir les différentes formules utilisées.


Les formules en C5, D5 and E5 sont :
= DATEDIF($B5,$D$1,“y”)
= DATEDIF($B5,$D$1,“ym”)
= DATEDIF($B5,$D$1,“md”)



Lien Permanent pour cet article : https://www.excel-exercice.com/difference-entre-2-dates/

(28 commentaires)

1 ping

Passer au formulaire de commentaire

  1. RESIDENCE VILLA MAGNA OSER Y CROIRE

    Bonjour,

    Aucune réponse pour TRAN ? car j’ai le même souci. =DATEDIF(C14;D14;”ym”)&” mois “&DATEDIF(C14;D14;”md”)&” jours”

    J’ai un contrat qui débute le 06/02/17 et se termine le 31/05/17. La réponse est de 3 mois et 23 jours.
    Hors avec la formule, j’obtiens 3 mois et 25 jours.

    Idem si je mets du 01/05/2017 au 31/05/2017 la réponse va être 0 mois et 30 jours … Alors qu’il y a bien 1 mois et 0 jours !

    Merci pour votre réponse.

  2. cao

    Bonjour, j’utilise la formule suivante =DATEDIF(F4;AUJOURDHUI();”y”) et cela fonctionne très bien :o) Néanmoins, je l’utilise sur un tableau où la date dans la colonne de F4,G4, H4,I4, etc… n’est remplie qu’au jour le jour dans le courant du mois et donc, dans ce tableau, au début du mois, de nombreuses cellules sont vides. Le résultat de ma formule est donc 115 car la date de référence quand la cellule vide est 1900…. Avez vous une solution pour que mon tableau n’affiche pas 115 s’il n’est pas complètement rempli ??? Merci d’avance

    1. cao

      petite correction… il s’agit bien de LA colonne de F4, F5, F6, etc…;o)

    2. Frédéric LE GUEN

      Bonjour,
      Il suffit d’inclure la fonction DATEDIF dans une fonction SI qui va faire un test si la cellule est renseignée ou non.
      =SI(F4<>“”;DATEDIF(…);””)

  3. Jean Le Bon

    J’ai utilisé la formule pour la durée de vie des rois de France. Ça ne marche pas pour les dates anciennes. Exemple pour St Louis, du 25/04/1214 au 25/08/1270. Mais j’arrive quand même au résultat en ajoutant 1000 ans à chaque date, et donc du 25/04/2214 au 25/08/2270

  4. dabel

    Bonjour, J’utilise datedif pour calculer le nombre de mois entre deux dates. ça marche très bien entre des mois complets mais j’aimerais que cela m’indique aussi les demi-mois. Par exemple la différence entre 01.01.2014 et 15.04.2014 = 3.5 mois.
    Connaissez-vous une formule qui fait ça ?

    Merci.

  5. Anonyme

    j’ai un probleme avec datedif. lorsque une des cellule est vide n est pas remplie, le résultat de cette formule me donne 42017. ce qui me pose vraiment un probleme.

    1. Frédéric LE GUEN

      Bonjour,
      Il suffit de faire un test avec la fonction SI pour savoir si l’une des cellules qui va utiliser être utilisée dans la fonction DATEDIF est vide ou non.
      =SI(OU(cellule1=vide;cellule2=vide),””,DATEDIF)

      1. ARIANE

        Bonjour,
        Je souhaite appliquer la formule DATEDIF afin d’avoir des alertes pour effectuer des relances, concernant la problématique de la cellule vide j’ai utilisé votre indication sans succès. voici comment mon tableau se présente: en J date du contact, en K date de relance, en L Date du jour avec la formule AUJOURDHUI(), en M la date de dépassement, en N l’alerte avec la formule SI=(M8>0;”ALERTE”;SI(ESTVIDE(M8);”NEANT”)). Que faire, merci d’avance.

  6. Anonyme

    Bonjour, la fonction datedif me donne une date en sortie!
    Starting Date Finishing Date Days Total
    02-mai 04-août 03-avr

  7. TRAN

    Bonjour,

    Moi j’ai utiliser cette formule mais me suis aperçue d’un petit souci.
    En effet, je l’utilise pour calculer la durée des contrats de travail.
    Exemple: J’ai un contrat qui débute le 10/09/14 et termine le 09/03/15. En principe, sa durée de travail est de 6 mois.
    Hors avec la formule, j’obtiens 5 mois et 28 jours. Je suppose que c’est le mois de février qui a dû poser problème lors du calcul dans Excel?
    Ma formule est la suivante: =DATEDIF(E17;F17;”y”) & ” an ” & DATEDIF(E17;F17;”ym”) & ” mois et ” & DATEDIF(E17;F17;”md”) +1 & ” jour(s)”

    Merci d’avance pour votre réponse.

  8. Anonyme

    Sous excel 2013, la fonction DATEDIF n’existe pas..

    1. JP

      elle existe mais n’est pas documentée : essayez !

  9. Philippe

    En A1 = 29/03/1970
    En A2 = 16/05/2014

    La formule est = DATEDIF(“A1″;”A2″;”Y”)

    Résultat : 44

  10. Anonyme

    Bonjour, je n’arrive pas à obtenir l’écart en mois. Pourtant j’ai bien ma date “B” inférieur à la date “C”. J’ai mis les guillemets pour “ym” et un “#NOM?” apparait. la formule que j’ai mis ressemble à:
    = DATEDIF(D47;E47;”ym”)
    Serait-il possible de m’aider svp?

    1. fredericleguen

      Sur quelle version d’Excel vous travaillez ?

      1. Anonyme

        Excel 2013

      2. Frédéric LE GUEN

        Ca devrait parfaitement fonctionner alors. Sur Excel 2003 j’aurais compris pkoi mais pas là. Et d’ailleurs, toutes les fonctions utilisées dans cette page web fonctionnent à merveille.
        Autre raison, les dates que vous avez dans vos cellules ne sont pas au format Date. Essayez de changer le format en Standard pour voir si vous avez des valeurs aux alentours de 41000
        e

      3. Anonyme

        C’est un document qui est issu d’Excel 97-2003 et je l’ai enregistré sous 2013.
        J’obtiens bien des valeurs aux alentours de 41 000.

      4. Frédéric LE GUEN

        Donc ce sont bien des dates (good point)
        Essayez de l’enregistrer aux format xlsx (même si cela ne devrait pas avoir d’incidence) et de recommencer

      5. Anonyme

        Non pas de changement, sauf quand je met datedif en minuscule où j’obtiens des 0 à la place des #NOM?

      6. Saam

        Bonjour,

        Je suis sur Excel 2013 et pareil, je n’ai pas la formule DATEDIF
        J’essaye de faire tout ce que vous expliquer mais rien a faire, il n’y a que des #VALEUR! qui appraraissent :/

      7. Anonyme

        J’ai mis DATEDIF en minuscule. j’obtiens maintenant uniquement des 0

  11. Raymond

    Bonsoir

    Excel 2013 semble ne pas connaitre cette fonction.

    J’obtient dans la cellule le messeage #NOM?

    formule utilisée

    =DATEDIF(F12;(AUJOURDHUI());Y)

    Merci
    Raymond

    1. Frédéric LE GUEN

      Il faut mettre Y entre guillemet 😉

  12. simval

    la formule [datedif] ne fonctionne pas. Avez-vous des explications ?
    Merci

    1. Frédéric LE GUEN

      Bonjour,
      La seule raison que je vois c’est que la date1 est supérieure à la date2. C’est la seule raison connue pour laquelle DATEDIF ne fonctionne pas

  13. Hermann

    Je vous remercie de partager l’information ;c’est un logiciel que j’apprécie particulierement
    Merci

  1. Excel gratuit

    […] Fonction DATEDIF […]

Laisser un commentaire

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

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Advertisment ad adsense adlogger