DATEDIF : calculer la différence entre deux dates dans Excel
Calculer le temps écoulé entre deux dates — un âge, une ancienneté, la durée d’un projet — est un besoin courant dans Excel. Et pour cela, il existe une fonction étonnamment méconnue : DATEDIF. Étonnamment, car c’est une fonction « cachée » : elle n’apparaît nulle part dans les menus d’Excel, n’est pas proposée à la saisie automatique, et Microsoft ne la documente quasiment plus. Pourtant, elle fonctionne parfaitement et reste l’outil le plus simple pour mesurer un écart entre deux dates.
Ce guide explique tout ce qu’il faut savoir sur DATEDIF : sa syntaxe, ses six unités (dont certaines déroutantes), ses cas d’usage concrets comme le calcul d’un âge, et ses pièges. Les exemples utilisent la syntaxe française, avec le point-virgule (;) comme séparateur.
Une fonction « cachée » héritée du passé
Avant d’entrer dans le vif, une particularité à connaître. DATEDIF ne s’affiche pas dans la liste des fonctions d’Excel : quand vous commencez à taper =DAT, Excel ne vous la propose pas. Il faut la saisir entièrement à la main. Ce n’est pas un bug : c’est une fonction héritée du tableur Lotus 1-2-3 (un ancêtre des années 1980), conservée par Microsoft pour la compatibilité, mais volontairement non mise en avant.
Deux conséquences pratiques. D’abord, ne cherchez pas d’aide dans Excel : il n’y en a pas. Ensuite, attention à l’orthographe : c’est bien DATEDIF avec un seul « F ». Une fonction DATEDIFF (deux « F ») existe, mais elle appartient au langage VBA, pas aux formules de feuille — l’utiliser dans une cellule renvoie une erreur.
La syntaxe de DATEDIF
La fonction prend trois arguments : la date de début, la date de fin, et l’unité de mesure du résultat.
Deux règles impératives, sous peine d’erreur :
- la date de début doit être antérieure à la date de fin. Dans le cas contraire, DATEDIF ne renvoie pas un nombre négatif mais une erreur
#NOMBRE!; - l’unité doit être entre guillemets, et son code reste toujours en anglais (Y, M, D…) même dans Excel en français, car la fonction n’a jamais été traduite.
Les trois unités principales : Y, M, D
Les trois unités de base répondent à la question « combien de temps s’est écoulé, exprimé en années, en mois ou en jours ? ». Prenons un exemple de référence : une date de début en A2 et une date de fin en B2.
| A | B | |
|---|---|---|
| 1 | Date début | Date fin |
| 2 | 15/03/2020 | 20/07/2023 |
Voici ce que renvoie chaque unité :
| A | B | C | |
|---|---|---|---|
| 2 | 15/03/2020 | 20/07/2023 | 3 |
L’unité "Y" (Year) donne le nombre d’années complètes écoulées : ici 3 années pleines.
| A | B | C | |
|---|---|---|---|
| 2 | 15/03/2020 | 20/07/2023 | 40 |
L’unité "M" (Month) donne le nombre total de mois complets : 40 mois.
| A | B | C | |
|---|---|---|---|
| 2 | 15/03/2020 | 20/07/2023 | 1222 |
L’unité "D" (Day) donne le nombre total de jours : 1222 jours. À noter : DATEDIF compte tous les jours calendaires, week-ends et jours fériés compris. Pour ne compter que les jours ouvrés, c’est une autre fonction qu’il faut utiliser (NB.JOURS.OUVRES).
Les trois unités « restantes » : YM, YD, MD
C’est ici que DATEDIF déroute, mais c’est aussi ce qui fait sa richesse. Trois unités supplémentaires calculent non pas le total, mais ce qui reste après avoir retiré les unités plus grandes. Elles sont indispensables pour exprimer une durée « à l’humaine » du type « 3 ans, 4 mois et 5 jours ».
"YM": le nombre de mois restants, une fois les années complètes retirées (ignore les années et les jours) ;"YD": le nombre de jours restants, une fois les années retirées (ignore les années) ;"MD": le nombre de jours restants, une fois les mois complets retirés (ignore les mois et les années).
Reprenons notre exemple. L’unité "YM" donne :
| A | B | C | |
|---|---|---|---|
| 2 | 15/03/2020 | 20/07/2023 | 4 |
Le résultat est 4 : après avoir retiré les 3 années complètes, il reste 4 mois. C’est exactement ce dont on a besoin pour composer une durée détaillée.
Une mise en garde importante sur l’unité « MD » : Microsoft elle-même signale que ce paramètre peut produire des résultats erronés (un nombre négatif ou imprécis) dans certaines configurations de dates. Utilisez-la avec prudence et vérifiez toujours son résultat sur vos données réelles.
Cas d’usage : calculer un âge ou une ancienneté
C’est l’application la plus fréquente de DATEDIF. En combinant la fonction avec AUJOURDHUI() (qui renvoie la date du jour), on obtient un âge qui se met à jour automatiquement.
Pour l’âge en années complètes, avec une date de naissance en A2 :
La même logique s’applique à une ancienneté, à partir d’une date d’embauche. Le grand intérêt d’AUJOURDHUI() est que le résultat se recalcule à chaque ouverture du fichier : l’âge ou l’ancienneté reste toujours à jour, sans intervention.
Afficher une durée complète « à l’humaine »
En combinant plusieurs appels à DATEDIF avec les unités Y, YM et MD, et en assemblant le tout avec l’opérateur de concaténation &, on affiche une durée lisible et complète :
Sur notre exemple, cette formule produit un résultat du type « 3 ans, 4 mois et 5 jours ». Les espaces à l’intérieur des guillemets sont importants : ils évitent que les nombres et les mots se collent. (Pour aller plus loin sur l’assemblage de texte, voyez notre guide dédié à la concaténation.)
Pièges et bonnes pratiques
Quelques points de vigilance propres à DATEDIF :
L’ordre des dates. Si la date de fin est antérieure à la date de début, DATEDIF renvoie #NOMBRE!. Pour sécuriser une formule, on peut l’encadrer d’un test : =SI(B2<A2;"Dates inversées";DATEDIF(A2;B2;"Y")).
Le format des dates. Les cellules doivent contenir de véritables dates (reconnues comme telles par Excel), et non du texte ressemblant à une date. Sinon, l’erreur #VALEUR! apparaît. Excel ne reconnaît d’ailleurs pas les dates antérieures au 1er janvier 1900.
Les unités en anglais et entre guillemets. Toujours "Y", "M", "D", "YM", "YD", "MD" — jamais en français, jamais sans guillemets. Une unité invalide déclenche une erreur.
La prudence sur « MD ». Comme signalé plus haut, cette unité peut donner des résultats imprévus. En cas de doute, vérifiez ou privilégiez d’autres approches pour les jours résiduels.
DATEDIF ou une simple soustraction ?
Pour obtenir uniquement un nombre de jours, on peut se passer de DATEDIF : une simple soustraction suffit. La formule =B2-A2 (avec la cellule formatée en nombre) renvoie le nombre de jours entre les deux dates, exactement comme DATEDIF(A2;B2;"D").
La soustraction est plus courte, mais DATEDIF reste plus explicite et surtout bien plus puissant dès qu’on veut des mois, des années, ou une durée détaillée. Pour un simple écart en jours, la soustraction fait l’affaire ; pour tout le reste, DATEDIF est l’outil adapté.
En résumé
DATEDIF est la fonction incontournable — bien que cachée — pour calculer un écart entre deux dates :
- syntaxe
=DATEDIF(début; fin; "unité"), à saisir à la main car absente des menus ; - trois unités de base :
"Y"(années),"M"(mois),"D"(jours) ; - trois unités « restantes » :
"YM","YD","MD", pour composer une durée détaillée ; - idéale pour un âge ou une ancienneté, combinée à
AUJOURDHUI(); - attention à l’ordre des dates (
#NOMBRE!), au format, et aux résultats de"MD".
Une fonction discrète, donc, mais redoutablement pratique une fois qu’on la connaît. Le bon réflexe reste de tester ses formules sur ses propres dates avant de les déployer — d’autant que DATEDIF, avec ses unités subtiles, réserve parfois des surprises.
Vous jonglez souvent avec des dates dans Excel ? DATEDIF, associée à AUJOURDHUI, couvre l’essentiel des calculs de durée du quotidien — de l’âge d’un contact à l’ancienneté d’un contrat.