Tu veux calculer la durée entre deux dates dans Excel en années, mois ou jours ? La fonction qu’il te faut s’appelle DATEDIF. Et c’est la fonction la plus mystérieuse d’Excel : elle existe depuis des années, mais Microsoft ne la documente plus dans l’aide officielle. Pourtant, elle marche parfaitement.
DATEDIF (sans le 2e F final) n’apparaît pas dans l’auto-complétion d’Excel. Tu dois la taper toi-même. C’est probablement la seule fonction Excel cachée volontairement : Microsoft la conserve pour la compatibilité avec Lotus 1-2-3 (vieux concurrent des années 80) mais ne la met plus en avant.La syntaxe de DATEDIF
La fonction prend 3 arguments :
- date_début : la première date (cellule ou date entre guillemets).
- date_fin : la seconde date. Doit être supérieure ou égale à date_début.
- unité : une chaîne de caractères entre guillemets qui indique en quoi on veut le résultat.
Les 6 unités possibles
C’est l’argument le plus important. Voici les 6 unités acceptées :
| Unité | Renvoie | Exemple (01/01/2020 → 14/05/2026) |
|---|---|---|
"y" | Nombre d’années complètes | 6 |
"m" | Nombre de mois complets | 76 |
"d" | Nombre de jours | 2 325 |
"ym" | Mois restants après les années complètes | 4 |
"md" | Jours restants après les mois complets | 13 |
"yd" | Jours restants après les années complètes | 134 |
"y", "ym" et "md" pour afficher une durée « à l’humaine » du style « 6 ans, 4 mois et 13 jours ». Voir l’exemple plus bas.5 exemples concrets
Exemple 1 — Calculer un âge
Date de naissance en A2. Pour calculer l’âge en années complètes :
Le résultat se met à jour automatiquement chaque jour grâce à AUJOURDHUI().
Exemple 2 — Ancienneté d’un salarié
Date d’embauche en B2. Pour calculer l’ancienneté en mois :
Exemple 3 — Durée d’un projet en jours
Date de début en C2, date de fin en D2 :
=D2-C2 (formate la cellule en nombre). C’est plus court, mais DATEDIF est plus explicite.Exemple 4 — Affichage « à l’humaine »
Pour afficher « 6 ans, 4 mois et 13 jours », on combine 3 DATEDIF :
Exemple 5 — Compter les jours ouvrés
DATEDIF ne compte pas les jours ouvrés (lundi à vendredi). Pour ça, utilise plutôt :
Ou pour exclure aussi des jours fériés spécifiques :
Les 3 pièges à éviter
Piège 1 — Date de fin avant date de début
Si date_début est postérieure à date_fin, DATEDIF renvoie #NOMBRE!. Pour gérer ça :
Piège 2 — L’unité « md » peut être incorrecte
Sur certaines combinaisons de dates (fin de mois), l’unité "md" peut renvoyer un résultat légèrement faux (à 1 ou 2 jours près). C’est un bug connu de Microsoft. Pour des calculs critiques, préfère FIN.MOIS + soustraction directe.
Piège 3 — Pas d’auto-complétion
Quand tu commences à taper =DATED, Excel ne te propose pas DATEDIF. C’est normal : la fonction n’est pas dans l’index officiel. Tape-la entièrement : =DATEDIF( et Excel reprend la main pour te guider sur les arguments.
DATEDIF, DATEDIFF, DIFFDATE : pas la même chose !
- DATEDIF (1 seul F) : la fonction Excel cachée. C’est celle de cet article.
- DATEDIFF (2 F) : une fonction de VBA et d’Access, pas d’Excel. Si tu écris
=DATEDIFF(...)dans Excel, tu auras une erreur#NOM?. - DIFFDATE / DATE.DIFF : ces noms n’existent pas en Excel.
Les alternatives modernes à DATEDIF
Si l’idée de Microsoft ne plus documenter DATEDIF te met mal à l’aise, voici les alternatives modernes :
| Besoin | Alternative recommandée |
|---|---|
| Jours entre 2 dates | =B2-A2 (simple soustraction) |
| Jours ouvrés | =NB.JOURS.OUVRES(A2;B2) |
| Années entre 2 dates | =ANNEE(B2)-ANNEE(A2) |
| Mois entre 2 dates | =(ANNEE(B2)-ANNEE(A2))*12+(MOIS(B2)-MOIS(A2)) |
| Âge en années complètes | =ANNEE.FRACTION(A2;AUJOURDHUI()) - 1+SI(MOIS(AUJOURDHUI())>=MOIS(A2);1;0) |
Mais pour 95 % des cas, DATEDIF reste de loin la plus simple à lire et à utiliser. Tant qu’elle existe dans Excel, autant en profiter.
DATEDIFF est souvent l’outil parfait pour des calculs de durée, mais deux besoins reviennent très souvent à côté de ça. Calculer un âge à partir d’une date de naissance suit exactement la même logique et mérite qu’on en parle séparément. Pour les durées exprimées en heures et minutes, le truc qui coince c’est souvent convertir des minutes en heures décimales ou en format HH:MM. Et si tu pars de zéro sur les dates dans Excel, la meilleure base c’est comprendre comment Excel stocke et calcule les dates avant de sortir des formules avancées.

FAQ — Fonction DATEDIF Excel
Comment calculer la différence entre 2 dates dans Excel ?
=DATEDIF(date_début ; date_fin ; "unité") avec une unité au choix : "y" pour les années, "m" pour les mois, "d" pour les jours. Pour le nombre de jours brut, une simple soustraction =B2-A2 fait aussi l’affaire.Pourquoi DATEDIF n’apparaît pas dans l’auto-complétion d’Excel ?
=DATEDIF(, Excel reprend l’auto-complétion pour les arguments suivants.Quelle est la différence entre DATEDIF et DATEDIFF ?
DATEDIF (1 F) est la fonction Excel pour la différence entre 2 dates. DATEDIFF (2 F) est une fonction de VBA et d’Access : elle n’existe pas dans Excel et renvoie l’erreur #NOM?. Dans Excel, c’est toujours DATEDIF avec un seul F.Comment calculer un âge avec DATEDIF ?
=DATEDIF(A2;AUJOURDHUI();"y") renvoie l’âge en années complètes. Pour afficher « X ans et Y mois », combine : =DATEDIF(A2;AUJOURDHUI();"y")&" ans et "&DATEDIF(A2;AUJOURDHUI();"ym")&" mois".DATEDIF compte-t-elle les jours ouvrés ?
NB.JOURS.OUVRES(date_début;date_fin;[jours_feries]).Quels sont les arguments possibles pour DATEDIF ?
"y" (années), "m" (mois), "d" (jours), "ym" (mois restants après les années), "md" (jours restants après les mois), "yd" (jours restants après les années). Toujours entre guillemets.