La Fonction Secrète d’Excel que Personne ne Connaît 🤫

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.

🤫 Le secret
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.
▶ DATEDIF : la fonction cachée en vidéo

La syntaxe de DATEDIF

La fonction prend 3 arguments :

=DATEDIF(date_début ; date_fin ; « unité »)
  • 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éRenvoieExemple (01/01/2020 → 14/05/2026)
"y"Nombre d’années complètes6
"m"Nombre de mois complets76
"d"Nombre de jours2 325
"ym"Mois restants après les années complètes4
"md"Jours restants après les mois complets13
"yd"Jours restants après les années complètes134
💡 Astuce composition
Combine "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 :

=DATEDIF(A2 ; AUJOURDHUI() ; « y »)

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 :

=DATEDIF(B2 ; AUJOURDHUI() ; « m »)

Exemple 3 — Durée d’un projet en jours

Date de début en C2, date de fin en D2 :

=DATEDIF(C2 ; D2 ; « d »)
💡 Alternative simple
Pour le nombre de jours, tu peux aussi écrire simplement =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 :

=DATEDIF(A2;B2; »y »)& » ans, « &DATEDIF(A2;B2; »ym »)& » mois et « &DATEDIF(A2;B2; »md »)& » jours »

Exemple 5 — Compter les jours ouvrés

DATEDIF ne compte pas les jours ouvrés (lundi à vendredi). Pour ça, utilise plutôt :

=NB.JOURS.OUVRES(C2 ; D2)

Ou pour exclure aussi des jours fériés spécifiques :

=NB.JOURS.OUVRES(C2 ; D2 ; Jours_feries)
« DATEDIF est cachée. Mais elle est l’arme secrète de tous ceux qui font du suivi RH ou des plannings. »
— Jean-Baptiste

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 :

=SI(A2>B2 ; « Dates inversées » ; DATEDIF(A2;B2; »d »))

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.
⚠️ À retenir
Dans Excel, c’est DATEDIF avec un seul F final. Si tu copies-colles une formule trouvée sur un forum et qu’elle s’écrit DATEDIFF, c’est probablement du VBA, pas du Excel.

Les alternatives modernes à DATEDIF

Si l’idée de Microsoft ne plus documenter DATEDIF te met mal à l’aise, voici les alternatives modernes :

BesoinAlternative 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.

MASTERCLASS GRATUITE
Si tu en as marre de galérer sur Excel, découvre la méthode TutoSurExcel pour maîtriser Excel en moins de 30 jours.
Les fonctions cachées, les automatisations qui font gagner du temps, les bons réflexes : tout dans une masterclass gratuite et 100 % pratique.
Réserver ma place gratuite →
Jean-Baptiste, formateur TutoSurExcel

FAQ — Fonction DATEDIF Excel

Comment calculer la différence entre 2 dates dans Excel ?
Utilise =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 ?
Microsoft ne documente plus officiellement DATEDIF mais la fonction existe toujours pour la compatibilité avec Lotus 1-2-3 (un ancien tableur). Tu peux la taper entièrement : dès que tu écris =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 ?
Si la date de naissance est en A2 : =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 ?
Non, DATEDIF compte les jours calendaires (tous les jours, y compris week-ends et fériés). Pour compter uniquement les jours ouvrés, utilise NB.JOURS.OUVRES(date_début;date_fin;[jours_feries]).
Quels sont les arguments possibles pour DATEDIF ?
Six unités : "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.

Nos autres articles de blog

Comment faire un graphique dans Excel : guide complet

Tu ouvres un tableau de chiffres et tu veux le partager avec ton équipe. Tu...

KPI : c'est quoi et comment en créer dans Excel

KPI : tu as sûrement entendu ce mot en réunion, dans un rapport ou dans...

Convertir des minutes en heures dans Excel (et inversement)

Tu travailles sur un suivi de temps, un planning ou une feuille de paie, et...

Rejoignez plus de 30.000 personnes qui reçoivent mes astuces gratuitement chaque semaine

Formation très intéressante et dynamique. Bonnes explications et interactions avec le formateur. Pouvoir se repasser les vidéos pour s’exercer est une excellente opportunité. Merci a Jean Baptiste pour son professionnalisme.
Bury Emelyne
9 months ago