Vous avez déjà été confronté à la nécessité de calculer la différence entre deux dates dans Excel? Que ce soit pour des projets, des échéances ou des anniversaires, la fonction DATEDIF est votre alliée incontournable. Dans ce guide complet, je vais non seulement vous montrer comment utiliser DATEDIF pour des calculs précis, mais aussi vous révéler des astuces et des cas d'usage que vous n'auriez jamais imaginés. Prêt à devenir un maître du calcul de dates avec Excel? Alors, plongeons dans le vif du sujet!
Sommaire
Excel: Maîtrisez la Fonction DATEDIF
La fonction DATEDIF permet de calculer la différence entre deux dates. Cette différence peut être exprimée en jours, en mois ou en années (voir la structure de la fonction plus bas). Vous ne trouverez pas cette fonction dans la liste des fonctions qu'Excel vous propose d'utiliser dans une Feuille. Ni même dans l'Aide d'Excel. En fait, cette fonction existe dans Excel pour assurer une compatibilité rétroactive avec la suite Lotus 1-2-3 (dont plus personne ne se souvient…).
Bien que la fonction DATEDIF n'apparaît pas sur la liste des fonctions, elle est disponible dans les versions suivantes de Microsoft Excel:
|
|
Vu cette liste, il y a peu de chance que vous ne puissiez pas utiliser cette fonction…
Vidéo: Comprendre la Fonction DATEDIF en 6 Minutes
Syntaxe de la Fonction DATEDIF dans Excel
=DATEDIF(date_début;date_fin;unité_de_temps)
Les trois paramètres sont les suivants:
- date_début: La date du début de la période de calcul.
- date_fin: La date de la fin de la période de calcul. Attention: Cette date est exclue du calcul! (voir remarque plus bas)
- unité_de_temps: L'unité de temps dans laquelle le résultat sera exprimé. Voici les valeurs possibles…
- "D" – nombre de jours complets dans la période
- "M" – nombre des mois complets dans la période
- "Y" – nombre des années complètes dans la période
- "MD" – nombre de jours complets dans la période, les années et les mois sont ignorés
- "YM" – nombre de mois complets dans la période, les années et les jours sont ignorés
- "YD" – nombre des jours complets dans la période, les années dans les dates sont ignorées
Comme vous pouvez le constater, il s'agit des abréviations anglophones ("D" – Day, "M" – Month, "Y" – Year). Cela vient du fait que DATEDIF n'a pas été adapté aux différentes version linguistiques d'Excel…
Attention: La fonction Excel DATEDIF ne doit pas être confondue avec la fonction VBA DateDiff (avec deux "f")! Bien que semblables, il s'agit de deux fonctions tout à fait différentes…
Fonction DATEDIF en français
Si vous vous demandez quel est l'équivalent de la fonction DATEDIF en français, sachez qu'il n'y en a pas. Même en français, le nom de cette fonction reste DATEDIF.
Vous vous demandez peut-être pourquoi la fonction DATEDIF semble si mystérieuse dans Excel. En réalité, DATEDIF est une fonction 'cachée' qui n'apparaît pas dans la liste des fonctions d'Excel lorsque vous commencez à taper son nom. Pourquoi cette discrétion? Historiquement, DATEDIF a été introduite dans Excel pour assurer la compatibilité avec des logiciels plus anciens comme Lotus 1-2-3. Depuis lors, Microsoft n'a pas vraiment mis en avant cette fonction, mais elle reste incroyablement utile.
Un autre point intéressant est que DATEDIF n'est pas localisée en français ni dans d'autres langues. Cela signifie que peu importe la version linguistique d'Excel que vous utilisez, le nom de la fonction restera toujours 'DATEDIF'. C'est une petite particularité à garder à l'esprit lorsque vous travaillez avec cette fonction polyvalente.
Exemples d'utilisation de la fonction DATEDIF
Voici quelques exemples pour illustrer l'utilisation de la fonction DATEDIF en pratique…
Date 1 | Date 2 | Formule | Résultat | Remarque |
---|---|---|---|---|
4-11-2022 | 8-05-2023 | =DATEDIF(DATE(2022;11;4);DATE(2023;5;8);"D") | 185 | Nombre de jours complets entre les deux datex (le dernier jour de la période, c/à/d la derrnière date est exclue) |
1-06-2018 | 12-08-2021 | =DATEDIF(DATE(2018;6;1);DATE(2021;8;12);"M") | 38 | Nombre des mois complets |
1-01-2016 | 15-05-2023 | =DATEDIF(DATE(2016;1;1);DATE(2023;5;15);"D") | 2691 | Nombre de jours entre les deux dates |
1-01-2019 | 15-05-2023 | =DATEDIF(DATE(2019;1;1);DATE(2023;5;15);"MD") | 14 | Nombre de jours entre deux dates, abstraction faite des mois et des années |
1-01-2015 | 15-05-2021 | =DATEDIF(DATE(2015;1;1);DATE(2021;5;15);"YD") | 134 | Nombre des jours entre deux dates, abstraction faite des années |
1-01-2017 | 15-05-2023 | =DATEDIF(DATE(2017;1;1);DATE(2023;5;15);"YM") | 4 | Nombre de mois entre deux dates, abstraction faite des années |
1-01-2024 | 1-01-2022 | =DATEDIF(DATE(2024;1;1);DATE(2022;1;1);"Y") | #NOMBRE! | Erreur car la date de début est postérieure à la date de fin |
Points Importants à Noter
Certaines conditions doivent être remplies pour que la fonction DATEDIF fonctionne correctement…
Précision de la Fonction DATEDIF
Ne croyez pas des sites internet qui vous disent (exemple à l'appui) que cette fonction n'est pas précise (comme par exemple CommentCaMarche.net ci-dessous)
Cette idée erronée vient d'une mauvaise compréhension du calcul: en fait, le jour correspondant à la date de fin n'est pas pris en compte dans le résultat final. Autrement dit, seules les périodes (jours, mois ou années) TERMINÉES sont inclues dans le résultat.
Dans l'exemple cité par CommentCaMarche.net, le 31/12/2013 n'est pas encore "terminé" et n'est donc pas inclus dans le calcul. Ainsi, le mois de décembre n'est pas complet et la différence de 3 mois renvoyée par la formule DATEDIF est correcte!
Gestion des Erreurs avec DATEDIF
La date de début doit être antérieure à la date de fin – en cas de contraire, la fonction ne renvoie pas une valeur négative mais une erreur (#NOMBRE!
).
Avantages et Inconvénients de DATEDIF
La fonction DATEDIF est extrêmement utile pour des calculs de dates, mais elle n'est pas sans ses limites. Par exemple, elle n'est pas localisée en français ni dans d'autres langues, ce qui peut être un inconvénient pour certains utilisateurs. Surtout qu'aucune aide, ni les explications sur son utilisation ne se trouvent directement dans Excel.
Choses à Garder à l'Esprit
Les deux dates doivent être dans le format approprié – c'est à dire "date" ou "nombre" (pour les geeks). Si vous utilisez comme paramètres des cellules formatées comme date, vous n'avez rien à craindre. Si vous voulez comparer des dates "à la main", il est préférable d'utiliser d'abord la fonction DATE. Ce qui donne une formule de ce type: =DATEDIF(DATE(2023;1;1);DATE(2024;4;30);"Y")
Pour aller plus loin en Excel…
- La page de la fonction DATEDIF sur le site internet de Microsoft (attention!, les périodes de temps indiquées: "J", "M", "A",… ne fonctionnent pas car ils sont probablement le fruit d'une traduction automatique. Il faut bien utiliser les lettres "anglaises": "D", "M", "Y",… comme c'est indiqué dans mon tutoriel)
- Un cas d'utilisation pratique de DATEDIF: Calculer l'âge dans Excel
- Microsoft Excel en ligne Gratuit – gagnez en efficacité sans payer!
- Toutes les fonctions disponibles en Excel (actuellement plus de 500 fonctions!)
- Tout sur le Tableau croisé dynamique dans Excel
- Tutoriels sur les principales fonctions: RECHERCHEV, RECHERCHEH, RECHERCHEX, SI, NB.SI, SOMME.SI ,…
29 commentaires sur “Comment Utiliser DATEDIF dans Excel: Le Guide Complet”
Merci pour la remarque sur la fiabilité de cette fonction. MAintenant, ça a l'air logique!
Bonjour;
Sauf erreur de ma part, vous indiquez que la fonction est cachée, mais sans nous dire où la trouver…
Pouvez-vous nous indiquer la marche à suivre pour trouver cette formule a priori fort utile ?
Merci d'avance
Bonjour Olivier.
En fait c'est cela le souci avec cette fonction très utile – vous ne la trouverez pas!
Vous pouvez l'utiliser mais vous ne la verrez ni dans la liste des fonctions (dans le Ruban), ni dans l'Aide…
Vous devez savoir qu'elle existe et quel est la manière de l'utiliser (ses arguments & leur ordre). Et c'est le but de ce tutoriel: faire savoir qu'elle existe et décrire comment elle fonctionne…
Bien à vous, Martin
Bonjour, je désirerai faire la différence entre une date écrite dans une cellule et la date actuelle au moment où je lis le fichier.
Comment est-ce que j'introduis la variable dans la fonction?
Cordialement
Bonjour,
Utiliser la fonction =AUJOURDHUI() pour votre calcul devrait vous donner un résultat satisfaisant.
Bonne réception,
Si la cellule contenant la date est disons "A1", et vous voulez la différence en années complètes, la formule doit être la suivante:
=DATEDIF(A1;AUJOURDHUI();"Y")
Bien à vous,
Martin
Bonjour lorsque je fais la différence entre ces dates
DATEDIF(J15;I15;"m")
ou I15 = 30/11/2017
et J15 = 31/10/2017
le retour de la formule est 0 or pour moi il y a un mois. Exemple: Si je mets le 30/10 à la place le retour va bien être 1. COmment faire pour palier à ce problème?
Merci d'avance
Pour illustrer mon propose, voilà la formule que j'utilise et les résultats obtenus. =SI(I6>J6;DATEDIF(J6;I6;"m");-DATEDIF(I6;J6;"m"))
Exit date Estimated exit Number of months
28/02/2018 31/10/2017 3
31/05/2018 30/09/2018 -3
Merci d'avance de votre retour et de votre aide.
Bonjour. Oui, c'est le problème des mois de 30 jours.
Une possibilité pour palier à ce problème est de forcer Excel en changeant la formule
=DATEDIF(J15;I15;"m")
en=DATEDIF(J15;I15+15;"m")
La formule normale aura les résultats suivants:
31/01/2017 28/02/2017 –> 0
28/02/2017 31/03/2017 –> 1
31/03/2017 30/04/2017 –> 0
30/04/2017 31/05/2017 –> 1
31/05/2017 30/06/2017 –> 0
30/06/2017 31/07/2017 –> 1
31/07/2017 31/08/2017 –> 1
31/08/2017 30/09/2017 –> 0
30/09/2017 31/10/2017 –> 1
31/10/2017 30/11/2017 –> 0
30/11/2017 31/12/2017 –> 1
La formule modifié donnera les résultats dont vous avez besoin:
31/01/2017 28/02/2017 –> 1
28/02/2017 31/03/2017 –> 1
31/03/2017 30/04/2017 –> 1
30/04/2017 31/05/2017 –> 1
31/05/2017 30/06/2017 –> 1
30/06/2017 31/07/2017 –> 1
31/07/2017 31/08/2017 –> 1
31/08/2017 30/09/2017 –> 1
30/09/2017 31/10/2017 –> 1
31/10/2017 30/11/2017 –> 1
30/11/2017 31/12/2017 –> 1
J'espère que cela pourra vous aider. Cordialement Martin
Le 15 que vous avez rajouté correspond à quoi ?
Merci
Bonjour,
cela signifie que l'on ajoute 15 jours à la date de fin.
DATEDIF ne donne comme résultat que les nombres entiers (ici des mois) donc ajouter 0,5 mois ne change pas le résultat "visible". Par contre cela permet de pallier au problème des mois de 30 jours.
Finalement, il suffit d'ajouter 1 seul jour, le résultat sera le même
=DATEDIF(J15;I15+1;"m")
Bonjour,
Je souhaiterai appliquer votre calcul de DATEDIF en y ajoutant la contrainte des jours ouvrés uniquement. Est-ce possible?
Bonjour,
Tu peux utiliser la fonction NB.JOURS.OUVRES dans Excel.
https://support.office.com/fr-fr/article/nb-jours-ouvres-nb-jours-ouvres-fonction-48e717bf-a7a3-495f-969e-5005e3eb18e7
Cordialement
Bonjour,
Autre façon d'aborder la présentation du décompte entre jours, mois et années pour pouvoir faire des calculs sur les cellules comportant la formule (exemple âge moyen): DATEDIF(date départ;date arrivée;"d") ou tout simplement la différence entre les 2 dates (date arrivée-date départ) où l'on applique le format de cellule de date personnalisée aa/mm/jj ==> exemple: date départ = 10/05/1981 et date d'arrivée = 18/02/2019
L'application de la formule donne 13798 jours soit converti en aa/mm/jj = 37/10/10 (37 ans, 10 mois et 10 jours)
Cordialement,
Bonjour a tous, juste avant merci pour ce gros travaille que vous faite.
J'ai un problème la fonction ne marche pas pour moi. Il donne l'erreur #NAME.
=dateif(DATE(2019,11,1),DATE(2018,1,27),"m")
Note: Excel 2007,sachez qu'a la place des ; c'est les , qui marche pour moi.
MErci bcp.
Bonjour,
dans votre question, la fonction que vous avez mis est DATEIF mais ce n'est pas correct. Cela doit être DATEDIF. Et comme "dateif" n'existe pas, Excel ne la trouve pas et renvoie l'erreur #NAME.
Sinon, pour les virgules et point-virgules dans les formules Excel, cela ne dépend pas de la version d'Excel (Excel 2007, 2010, etc.) mais des paramètres régionaux (de langue).
J'espère que cela répond à votre question. Cordialement, Martin
Bonjour, une question simple je crois mais j'ai quelques difficultés à en trouver la réponse…
Comment éviter que DATEDIF soit égal "0"
Pour être clair, j'ai besoin de calculer un délai de traitement d'un dossier. or il arrive que ce dossier soit ouvert et fermé le même jour. Je voudrais avoir "1" et non "0" en résultat. Est-ce possible ? Merci beaucoup
Bonsoir Khask,
vous pouvez passer par la fonction SI.
Si les dates se trouvent dans les cellules A2 et B2, alors la formule à utiliser sera la suivante:
=SI(DATEDIF(A2;B2;"d")<>0;DATEDIF(A2;B2;"d");1)
Voilà…
Cordialement, Martin
bonjour, en utilisant cette formule =DATEDIF(A1;AUJOURDHUI();"Y")
j'ai comme résultat #VALEUR! que faire?
Bonjour,
je dirais que c'est parce que la date dans la valeur dans la cellule A1 n'est pas une date ou n'est pas formatée comme une date.
Bonjours, Comment puis-je déterminer la différence entre deux dates en jour, heure et minute ?
Par exemple:
Date 1: 12/8/2018 11:00:00
Date 2: 12/8/2018 14:47:00
Bonjour,
Pour la fonctionne DATEDIF si vous n'arrive pas à le trouver pouvez vous essayer JOUR(date_fin,date_debut)
Merci
Bonjour Hicham,
La fonction c'est "JOURS" et pas "JOUR". Et en effet, elle donne le même résultat que DATEDIF pour les jours.
Pour information, la fonction "JOUR" renvoie la partie "jour" d'une date.
Bonjour lorsque je fais la différence entre le 21/03/2023 et le 15/04/2023 j' obtiens 25 jours le dernier jour est censé ne pas être pris en compte , suis je obliger d 'ajouter le +1 dans la formule ?
Bonjour Nathi,
en effet, entre 21/3 et 15/4, il y a bien 25 jours "terminés" (= le 15/4 ne compte pas).
Si vous souhaitez que les deux dates soient inclus dans le calcul, il faut effectivement ajouter "1" au résultat obtenu avec la fonction DATEDIF.
DATEDIF ne semble pas être disponible sur excel pour MAC (Office 365 pour MAC)
Bonjour Roger,
c'est étonnant. Je viens de vérifier sur le site de Microsoft et la Office 365 pour Mac est bien dans la liste des versions d'Excel où la fonction DATEDIF est disponible:
Mais je n'ai pas de machine Mac sous la main donc je ne peux pas vérifier…
Bàv, Martin
Est-il possible d'utiliser la fonction DATEDIF avec des dates antérieures à 1900, par exemple pour calculer l'âge au mariage d'un ancêtre ayant vécu dans les années 1700 ou 1800?
Bonjour Benoît,
La fonction
DATEDIF
dans Excel a une limitation importante en ce qui concerne les dates antérieures au 1er janvier 1900 (sur Windows) ou au 2 janvier 1904 (sur Mac), qui sont les dates de début prises en charge par Excel. Par conséquent, il n'est pas possible d'utiliser directement la fonctionDATEDIF
pour calculer des différences entre des dates se situant dans les années 1700 ou 1800.Pour contourner cette limitation, vous pourriez implémenter une solution personnalisée en VBA ou utiliser une approche créative dans Excel. Par exemple, vous pourriez calculer "manuellement" l'âge en soustrayant l'année de naissance de l'année de mariage et ajuster en fonction des mois et des jours si nécessaire.