Menu

DATEDIF Excel : années, mois et jours entre deux dates

=DATEDIF(A2;B2;"M") compte les mois complets entre la date de début en A2 et la date de fin en B2. Les unités Y, M, D, YM, MD et YD, pourquoi DATEDIF manque à la liste des fonctions, et l'erreur #NOMBRE!.

Chaque feuille de cette page est interactive : modifiez un nombre ou une formule et elle se recalcule.

=DATEDIF(A2;B2;"M") compte les mois complets entre la date de début en A2 et la date de fin en B2. Le troisième argument, l'unité, décide de ce qui est compté : "Y" les années, "M" les mois, "D" les jours, plus trois unités qui ignorent une partie des dates. DATEDIF porte le même nom dans un Excel français et dans un Excel anglais ; le tableau affiche les formules en anglais, avec des virgules, mais vous pouvez aussi les taper comme dans un Excel français, avec des points-virgules : =DATEDIF(A2;B2;"M").

Toutes les unités de DATEDIF sur une paire de dates
E3
ABCDE
1StartEndUnitResult
22024-04-152026-09-10Y2
3M28
4D878
5YM4
6MD26
7YD148
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =DATEDIF($A$2;$B$2;D3)

Du 2024-04-15 au 2026-09-10, il y a 2 années complètes, 28 mois complets et 878 jours. Modifiez la date de fin en B2 et regardez chaque unité bouger. L'unité peut être tapée dans la formule ("M") ou, comme ici, lue dans une cellule.

Syntaxe et unités de DATEDIF

=DATEDIF(start_date, end_date, unit)
UnitéCompteDu 2024-04-15 au 2026-09-10
"Y"les années complètes2
"M"les mois complets28
"D"les jours878
"YM"les mois après la dernière année complète4
"MD"les jours après le dernier mois complet26
"YD"les jours après la dernière année complète148

"Complet" signifie que DATEDIF n'arrondit jamais vers le haut. Du 31 janvier au 28 février, il y a 0 mois, car le 28 février arrive avant l'échéance d'un mois. L'unité n'est pas sensible à la casse ("m" fonctionne aussi), mais elle doit être entre guillemets ou dans une cellule.

Pourquoi DATEDIF n'est pas dans la liste des fonctions

DATEDIF vient de Lotus 1-2-3, et Microsoft ne la garde que pour la compatibilité. Elle n'est pas dans la boîte de dialogue Insérer une fonction, la saisie semi-automatique ne la propose pas, et aucune info-bulle n'affiche ses arguments. Elle calcule pourtant dans toutes les versions d'Excel sous Windows et Mac, et dans Google Sheets. Tapez le nom complet et la parenthèse ouvrante, =DATEDIF(, et ajoutez vous-même les arguments.

Nombre de mois entre deux dates

Les mois complets sont ce que demandent la plupart des contrats, abonnements et rapports d'ancienneté. Pour un chiffre décimal, FRACTION.ANNEE(A2;B2)*12 renvoie les mois en gardant la fraction (sa base par défaut compte chaque mois pour 30 jours).

Mois de chaque abonnement
C2
ABCD
1StartEndFull monthsDecimal months
22025-03-102026-01-0599.8
32024-04-152026-09-102828.8
42026-01-312026-02-2800.9
52025-11-012026-05-0166.0
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =DATEDIF(A2;B2;"M")

Le premier abonnement a duré 9 mois complets : le 5 janvier tombe avant le 10, donc le dixième mois n'est pas compté. La troisième ligne montre le cas du 31 janvier, 0 mois.

Années, mois et jours ensemble

"Y", "YM" et "MD" sont faites pour être utilisées ensemble. Chacune reprend là où la précédente s'est arrêtée, et les trois répondent à "combien de temps, exactement" : 2 ans, 4 mois et 26 jours pour les dates ci-dessus. Calculer un âge utilise les mêmes trois unités sur des dates de naissance.

Ancienneté
E2
ABCDEF
1HiredYearsMonthsDaysServiceAs of
22019-06-0373277y 3m 27d2026-09-30
32023-11-20210102y 10m 10d
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =B2&"y "&C2&"m "&D2&"d"

Le premier salarié compte 7 ans, 3 mois et 27 jours d'ancienneté au 2026-09-30.

Pourquoi DATEDIF renvoie #NOMBRE!

DATEDIF refuse de compter à rebours. Quand la date de début est postérieure à la date de fin, le résultat est #NOMBRE! (en anglais #NUM!). Si l'ordre peut varier, donnez à DATEDIF la date la plus ancienne avec MIN et la plus récente avec MAX.

Date de début après la date de fin
C2
ABCD
1StartEndDATEDIFWith MIN and MAX
22026-03-102026-01-05#NUM!64
#NUM! Un nombre sort de la plage acceptée par cette fonction.Dans Excel en français : =DATEDIF(A2;B2;"D")

C2 affiche #NUM! (le tableau affiche les noms d'erreur anglais) ; D2 renvoie 64. Pour les jours seuls, =ABS(B2-A2) donne les mêmes 64 sans DATEDIF. DATEDIF renvoie aussi #NOMBRE! pour une unité inconnue comme "W", et #VALEUR! (#VALUE!) quand une date est un texte qu'Excel ne sait pas lire comme une date.

L'unité MD peut se tromper

La documentation de Microsoft elle-même déconseille "MD" : quand le jour de début n'existe pas dans le mois qui précède la date de fin, elle peut renvoyer un nombre négatif.

MD à partir du 31 janvier
C2
ABCD
1StartEndMDD
22026-01-312026-03-01-229
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =DATEDIF(A2;B2;"MD")

Du 31 janvier au 1er mars, le résultat de "MD" est -2 : DATEDIF compte à partir du "31 février", qui devient le 3 mars, deux jours après la date de fin. Le nombre de jours, 29, est juste. Quand des dates de début peuvent tomber entre le 29 et le 31, affichez la durée en jours, ou vérifiez le chiffre MD à la main.

Exercice : compter les mois

À vous
C2
ABC
1StartEndMonths
22025-03-102026-01-05
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.

À vous : En C2, comptez les mois complets entre la date de début en A2 et la date de fin en B2.

À vous : dans n'importe quel ordre
C2
ABC
1Date 1Date 2Days
22026-04-182026-02-01
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.

À vous : En C2, comptez les jours entre les deux dates, quelle que soit celle qui vient en premier.

Questions fréquentes

Que fait DATEDIF dans Excel ?

Elle compte les années, mois ou jours complets entre deux dates : =DATEDIF(A2;B2;"Y") pour les années, "M" pour les mois, "D" pour les jours. La date de début doit venir en premier.

Pourquoi DATEDIF est-elle introuvable dans Excel ?

DATEDIF est conservée pour la compatibilité avec Lotus 1-2-3 : Excel l'exclut de la boîte de dialogue Insérer une fonction et de la saisie semi-automatique des formules. Elle fonctionne pourtant dans toutes les versions : tapez =DATEDIF( en entier et ajoutez vous-même les arguments.

Pourquoi DATEDIF renvoie-t-elle #NOMBRE! ?

La date de début est postérieure à la date de fin. Inversez les arguments, ou utilisez =DATEDIF(MIN(A2;B2);MAX(A2;B2);"D") quand vous ne savez pas quelle date vient en premier.

Quelle est la différence entre YM, MD et YD dans DATEDIF ?

Elles ignorent une partie des dates : "YM" donne les mois restants après les années complètes, "MD" les jours restants après les mois complets, et "YD" les jours restants après les années complètes. Ensemble, "Y", "YM" et "MD" donnent un âge en années, mois et jours.

DATEDIF fonctionne-t-elle dans Google Sheets ?

Oui, avec les mêmes arguments et les mêmes unités. Google Sheets la mentionne aussi dans son aide sur les fonctions, contrairement à Excel.

Illustration des langages de programmation de Coddy

Apprendre à coder avec Coddy

COMMENCER