Excel et Google Sheets stockent les dates sous forme de numéros de série : chaque jour correspond à un entier (1 pour le 1er janvier 1900 dans Excel, le 30 décembre 1899 dans Sheets). Calculer un écart entre deux dates revient donc à soustraire deux nombres, à condition de maîtriser les fonctions qui traduisent ce résultat brut en jours, mois ou années exploitables.
DATEDIF : la fonction cachée qui calcule un écart entre deux dates
La fonction DATEDIF existe à la fois dans Excel et Google Sheets. Sa particularité dans Excel : elle n’apparaît ni dans l’auto-complétion ni dans l’assistant de fonctions. Elle reste pourtant bien prise en charge dans Excel pour Microsoft 365, Excel 2024, 2021, 2019 et 2016 lorsqu’on la tape directement dans la cellule.
La syntaxe est identique sur les deux tableurs :
=DATEDIF(date_début; date_fin; unité)
Le troisième argument, l’unité, détermine ce que la formule renvoie. Voici les valeurs acceptées :
- « D » – nombre de jours entre les deux dates. C’est l’usage le plus courant pour compter un délai calendaire brut.
- « M » – nombre de mois complets. Utile pour calculer une ancienneté ou la durée d’un contrat.
- « Y » – nombre d’années complètes. Sert principalement au calcul d’un âge.
- « YM » – mois restants après déduction des années complètes. Combiné avec « Y », il permet d’afficher un résultat du type « 3 ans et 4 mois ».
- « YD » – jours restants après déduction des années complètes.
- « MD » – jours restants après déduction des mois complets. Attention, cette unité pose problème (voir ci-dessous).
Exemple concret dans Google Sheets : pour obtenir le nombre de jours entre le 10 juin 2020 et le 5 août 2020, la formule =DATEDIF("10/06/2020";"05/08/2020";"D") renvoie 56.

Le piège de l’unité « MD » dans une formule DATEDIF
L’unité « MD » est documentée comme renvoyant le nombre de jours après soustraction des mois complets. En pratique, elle produit des résultats inattendus en fin de mois. Le problème est reconnu par la communauté et par des ressources techniques spécialisées.
Le cas typique : une date de début au 31 janvier et une date de fin au 1er mars. DATEDIF avec « MD » peut renvoyer une valeur négative ou incohérente, parce que la fonction ne gère pas correctement les mois de longueurs différentes.
La solution de contournement la plus fiable consiste à ne pas utiliser « MD » du tout. Pour obtenir les jours restants après les mois complets, une approche plus robuste passe par une soustraction manuelle :
=date_fin - DATE(ANNEE(date_fin); MOIS(date_fin); JOUR(date_début))
Cette formule prend le jour de début comme référence dans le mois de fin, puis calcule l’écart. Elle évite les anomalies liées aux fins de mois.
Soustraction simple ou DATEDIF : quelle formule choisir dans Excel
Pour un écart en jours uniquement, la soustraction directe =B2-B1 fonctionne parfaitement dans les deux tableurs. Le résultat est un nombre entier qu’on peut formater librement. Cette méthode est plus lisible et ne dépend d’aucune fonction masquée.
DATEDIF devient utile dès qu’on a besoin de décomposer l’écart en années, mois et jours. Pour afficher « 2 ans, 3 mois et 15 jours » dans une seule cellule, la formule combine trois appels :
=DATEDIF(A1;A2;"Y")&" ans, "&DATEDIF(A1;A2;"YM")&" mois et "&DATEDIF(A1;A2;"YD")-DATEDIF(A1;A2;"YM")*30&" jours"
Un point à retenir : DATEDIF exige que date_début soit antérieure à date_fin. Si l’ordre est inversé, la fonction renvoie une erreur. La soustraction simple, elle, renverra un nombre négatif, ce qui peut être utile pour détecter une incohérence dans une colonne de données.

Jours ouvrés entre deux dates : NB.JOURS.OUVRES et sa variante INTL
Calculer des jours calendaires ne suffit pas toujours. Pour un calcul lié au travail (délais contractuels, planification de projet), la fonction NB.JOURS.OUVRES exclut automatiquement les samedis et dimanches.
Sa syntaxe dans Excel :
=NB.JOURS.OUVRES(date_début; date_fin; jours_fériés)
Le troisième argument est optionnel : il prend une plage de cellules contenant les dates de jours fériés à exclure en plus des week-ends. Sans cette plage, seuls les samedis et dimanches sont retirés du calcul.
La variante NB.JOURS.OUVRES.INTL va plus loin. Son deuxième argument permet de personnaliser les jours de repos. On peut définir que le week-end tombe le vendredi et le samedi, ou exclure uniquement le dimanche, ou toute autre combinaison via un code numérique ou une chaîne binaire de 7 caractères.
Exemple : pour exclure les mercredis et dimanches, le code week-end correspondant est la chaîne « 0010001 » (chaque position représente un jour, du lundi au dimanche, 1 = jour de repos).
Calcul d’âge et dates légales : une limite à connaître
DATEDIF avec l’unité « Y » est largement utilisée pour calculer un âge à partir d’une date de naissance. La formule =DATEDIF(A1;AUJOURDHUI();"Y") donne le nombre d’années complètes écoulées.
Des experts rappellent que DATEDIF ne suit pas forcément la règle légale de prise d’âge. Dans certains systèmes juridiques, une personne est considérée comme ayant un an de plus la veille de son anniversaire. Les personnes nées un 29 février sont souvent traitées comme changeant d’âge au 1er mars les années non bissextiles. DATEDIF ne gère aucune de ces subtilités.
Pour un usage administratif ou juridique, le résultat de DATEDIF constitue une approximation fiable, mais pas une valeur à prendre au sens légal strict sans vérification complémentaire.
Le choix entre soustraction directe, DATEDIF et NB.JOURS.OUVRES dépend donc du type d’écart recherché. Pour un simple décompte de jours, la soustraction suffit. Pour décomposer en années et mois, DATEDIF reste la seule option native, à condition d’éviter l’unité « MD ». Et pour tout calcul lié à des jours de travail, NB.JOURS.OUVRES.INTL offre la souplesse nécessaire pour coller à un calendrier professionnel réel.

