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.

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.