DATEDIF est la fonction secrète d'Excel pour calculer la différence entre deux dates. Elle porte le même nom en français et en anglais (DATEDIF), elle n'apparaît pas dans l'autocomplétion, mais elle fonctionne parfaitement depuis des décennies : héritage de l'ancien tableur Lotus 1-2-3.
Tu vas l'utiliser pour gérer l'ancienneté des employés à la minute près, suivre les échéances clients et identifier les factures en retard, mesurer la durée des cycles de vente, ou calculer automatiquement l'âge de quelqu'un en années, mois et jours combinés. Peu de fonctions Excel permettent ce niveau de précision sur les intervalles de dates.
Syntaxe de la fonction DATEDIF
=DATEDIF(date_début; date_fin; unité)DATEDIF n'apparaît pas dans l'autocomplétion d'Excel et n'est pas officiellement documentée par Microsoft. Elle doit être saisie manuellement. Si date_début est postérieure à date_fin, la fonction renvoie #NOMBRE!.
Comprendre chaque paramètre de la fonction DATEDIF
date_début
: la date de départ du calculÇa peut être une référence de cellule comme A1, une date construite avec DATE(2020;1;15), ou la fonction AUJOURDHUI(). Cette date doit être antérieure à date_fin, sinon tu obtiens #NOMBRE!.
Attention à bien avoir des cellules au format Date dans Excel, pas du texte qui ressemble à une date.
Attention : Si date_début est postérieure à date_fin, DATEDIF renvoie #NOMBRE!. Pour te protéger, utilise =DATEDIF(MIN(A1;B1); MAX(A1;B1); "D") qui place automatiquement la date la plus petite en premier.
date_fin
: la date d'arrivée du calculElle doit être postérieure à date_début. Pour calculer une durée jusqu'à aujourd'hui, utilise AUJOURDHUI() comme date_fin. C'est particulièrement utile pour les âges ou les anciennetés qui évoluent automatiquement chaque jour.
unité
: l'unité de mesure pour la différence de datesCe paramètre doit être entre guillemets. Six valeurs sont disponibles :
"Y" → années complètes entre les deux dates
"M" → mois complets entre les deux dates
"D" → nombre total de jours entre les deux dates
"YM" → mois restants après avoir compté les années complètes (0 à 11)
"MD" → jours restants après avoir compté les mois complets (attention aux bugs connus)
"YD" → jours entre les dates comme si elles étaient dans la même année
Astuce : Pour afficher une durée complète comme « 3 ans, 5 mois et 12 jours », combine trois DATEDIF : =DATEDIF(A1;B1;"Y")&" ans, "&DATEDIF(A1;B1;"YM")&" mois et "&DATEDIF(A1;B1;"MD")&" jours".
Pas envie d'écrire la formule DATEDIF à la main ?
Génère-la avec notre IAExemples pratiques pas à pas
RH : calculer l'ancienneté détaillée d'un employé
Tu travailles aux ressources humaines et tu dois calculer l'ancienneté exacte d'un employé pour déterminer ses droits à congés ou sa prime d'ancienneté. Tu veux un affichage précis en années, mois et jours, pas juste un nombre arrondi.
La formule combine trois DATEDIF avec les unités Y (années complètes), YM (mois restants après les années) et MD (jours restants après les mois). Grâce à AUJOURDHUI(), l'ancienneté se met à jour automatiquement chaque jour. Parfait pour un tableau de bord RH dynamique.
| A | B | C | |
|---|---|---|---|
| 1 | Employé | Date d'embauche | Ancienneté |
| 2 | Marie Dubois | 15/03/2019 | 5 ans, 9 mois et 15 jours |
| 3 | Pierre Martin | 01/06/2021 | 3 ans, 6 mois et 29 jours |
| 4 | Sophie Bernard | 10/09/2020 | 4 ans, 3 mois et 20 jours |
=DATEDIF(B2;AUJOURDHUI();"Y")&" ans, "&DATEDIF(B2;AUJOURDHUI();"YM")&" mois et "&DATEDIF(B2;AUJOURDHUI();"MD")&" jours"Comptable : suivre les échéances de paiement
Tu es comptable et tu gères les factures clients. Tu dois savoir combien de jours se sont écoulés depuis l'émission de chaque facture pour identifier les retards de paiement et relancer les clients au bon moment.
L'unité D calcule le nombre exact de jours entre la date de facture et aujourd'hui. Tu peux ensuite utiliser une mise en forme conditionnelle pour colorer en rouge les factures de plus de 60 jours. Ajoute une colonne avec =SI(C2>60;"URGENT";SI(C2>30;"À relancer";"OK")) pour qualifier automatiquement chaque ligne.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Client | Date facture | Jours écoulés | Statut |
| 2 | Entreprise ABC | 12/11/2024 | 48 | À relancer |
| 3 | Société XYZ | 20/12/2024 | 10 | OK |
| 4 | Client Pro | 05/10/2024 | 86 | URGENT |
=DATEDIF(B2;AUJOURDHUI();"D")Commercial : analyser la durée du cycle de vente
Tu es commercial et tu veux analyser ton cycle de vente en calculant le nombre de mois entre le premier contact et la signature du contrat. Cela te permet d'optimiser ton processus commercial et d'identifier les deals qui s'éternisent.
L'unité M compte uniquement les mois complets. En calculant la moyenne de la colonne Durée, tu obtiens ton cycle de vente moyen. Si c'est trop long, tu sais qu'il faut améliorer ta qualification ou ton suivi.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Client | Premier contact | Signature | Durée (mois) |
| 2 | Tech Startup | 15/01/2024 | 20/08/2024 | 7 |
| 3 | Grande Entreprise | 03/03/2024 | 12/11/2024 | 8 |
| 4 | PME Régionale | 10/06/2024 | 15/09/2024 | 3 |
=DATEDIF(B2;C2;"M")Gestionnaire de projet : calculer la durée des sprints
Tu es gestionnaire de projet en méthode agile et tu dois calculer précisément le nombre de jours calendaires de chaque sprint pour planifier les ressources et suivre l'avancement.
DATEDIF avec l'unité D compte tous les jours calendaires entre les deux dates.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Sprint | Date début | Date fin | Durée (jours) |
| 2 | Sprint 1 | 01/01/2024 | 14/01/2024 | 13 |
| 3 | Sprint 2 | 15/01/2024 | 28/01/2024 | 13 |
| 4 | Sprint 3 | 29/01/2024 | 11/02/2024 | 13 |
=DATEDIF(B2;C2;"D")Attention : DATEDIF compte les jours calendaires, pas les jours ouvrés. Si tu veux exclure les week-ends, utilise plutôt NB.JOURS.OUVRES (voir tableau comparatif ci-dessous).
Mets la fonction DATEDIF en pratique avec un exercice corrigé
M'entraînerLes erreurs fréquentes avec la fonction DATEDIF
Erreur #NOMBRE! : date_début postérieure à date_fin
Si ta date de début est postérieure à ta date de fin, Excel renvoie #NOMBRE!. C'est l'erreur la plus fréquente avec DATEDIF.
Solution : Vérifie l'ordre de tes dates. Si tu n'es pas sûr de l'ordre, utilise =DATEDIF(MIN(A1;B1); MAX(A1;B1); "D") pour que la plus petite date soit toujours en premier.
Résultats incorrects avec l'unité MD
L'unité MD peut donner des résultats erronés dans certains cas, notamment quand le jour de la date de début est supérieur au jour de la date de fin (par exemple du 31 janvier au 15 février). Microsoft reconnaît ce bug.
Solution : Teste toujours tes formules avec des dates connues. Pour plus de fiabilité, préfère des alternatives ou utilise JOURS() combinée avec des calculs manuels sur les parties de dates.
Oubli des guillemets autour de l'unité
Si tu écris =DATEDIF(A1;B1;Y) au lieu de =DATEDIF(A1;B1;"Y"), Excel cherche une cellule nommée Y et renvoie une erreur.
Solution : Mets toujours l'unité entre guillemets : "Y", "M", "D", "YM", "MD" ou "YD".
DATEDIF vs JOURS vs NB.JOURS.OUVRES vs MOIS.DECALER
Utilise DATEDIF quand tu as besoin de calculer des différences en années ou en mois (ancienneté, âge). Privilégie NB.JOURS.OUVRES pour la planification de projet (exclu week-ends et jours fériés). Pour les calculs simples de jours, JOURS est plus moderne et documenté.
| Critère | DATEDIF | JOURS | NB.JOURS.OUVRES | MOIS.DECALER |
|---|---|---|---|---|
| Unités disponibles | Années, mois, jours (6 options) | Jours uniquement | Jours ouvrés uniquement | Renvoie une date |
| Compte les week-ends | ✅ Oui | ✅ Oui | ❌ Non | N/A |
| Gère les jours fériés | ❌ Non | ❌ Non | ✅ Oui (paramètre optionnel) | ❌ Non |
| Documentée officiellement | ❌ Non | ✅ Oui | ✅ Oui | ✅ Oui |
| Usage recommandé | Âges, anciennetés | Calculs simples de jours | Planification de projet | Ajouter ou retirer des mois |
Astuces avancées avec DATEDIF
Calcul d'âge automatique avec AUJOURDHUI
Pour afficher l'âge qui se met à jour chaque jour sans intervention : =DATEDIF(A1;AUJOURDHUI();"Y")&" ans". Le tableau RH se corrige tout seul à chaque ouverture du fichier.
Pour gérer le pluriel, ajoute un SI : =DATEDIF(A1;AUJOURDHUI();"Y")&" "&SI(DATEDIF(A1;AUJOURDHUI();"Y")>1;"ans";"an").
Protège ta formule contre l'inversion de dates
Si tu n'es pas sûr de l'ordre des dates dans tes données, entoure DATEDIF avec MIN et MAX : =DATEDIF(MIN(A1;B1);MAX(A1;B1);"D"). La plus petite date sera toujours en premier, sans erreur #NOMBRE!.
Utile pour les imports où l'ordre des colonnes n'est pas garanti.
Convertis une durée en mois total
Pour obtenir le total en mois (pas en années + mois), utilise simplement l'unité M : =DATEDIF(A1;B1;"M")&" mois" renvoie 27 mois là où les unités combinées Y+YM donneraient « 2 ans, 3 mois ».
Pratique pour comparer des durées de contrats sur une seule colonne triable.
Questions fréquentes sur la fonction DATEDIF
Pourquoi DATEDIF n'apparaît pas dans la liste des fonctions d'Excel ?
DATEDIF est une fonction non documentée, héritée de l'ancien tableur Lotus 1-2-3 pour des raisons de compatibilité. Elle fonctionne parfaitement mais n'est pas officiellement supportée par Microsoft. Tu dois donc la taper manuellement sans autocomplétion.
Quelle est la différence entre les unités Y, M et D ?
Y compte les années complètes, M compte les mois complets, et D compte tous les jours. Par exemple, entre le 15/01/2020 et le 20/03/2023 : Y=3 ans, M=38 mois, D=1 160 jours. Chaque unité compte différemment la même période.
À quoi servent les unités YM, MD et YD ?
YM donne les mois restants après avoir compté les années complètes. MD donne les jours restants après avoir compté les mois. YD compte les jours comme si les dates étaient dans la même année. Ces unités sont utiles pour afficher des durées détaillées comme « 3 ans, 2 mois et 5 jours ».
Y a-t-il des bugs connus avec DATEDIF ?
Oui, l'unité MD peut donner des résultats incorrects dans certains cas spécifiques, notamment quand le jour de la date de début est supérieur au jour de la date de fin. Microsoft reconnaît ce problème. Vérifie toujours tes résultats avec des données de test connues si tu utilises MD.
Comment calculer l'âge exact d'une personne avec DATEDIF ?
Utilise =DATEDIF(date_naissance; AUJOURDHUI(); "Y") pour obtenir l'âge en années complètes. Si tu veux le format « 35 ans, 4 mois et 12 jours », combine plusieurs DATEDIF : années avec Y, mois avec YM, et jours avec MD.
Pour aller plus loin
Les fonctions similaires : JOURS, NB.JOURS.OUVRES, MOIS.DECALER, AUJOURDHUI, ANNEE
Découvre notre calculateur d’ancienneté pour obtenir la durée exacte entre deux dates, en années, mois et jours
Bloqué sur une formule Excel ?
Pose ta question à notre assistant Excel IA, il te sort la bonne formule en quelques secondes.
Essayer l'assistant IAGratuit · 10 questions par mois

