Calculer la différence entre deux dates dans Excel est l’une des tâches les plus courantes en gestion RH ou suivi de contrat. Pourtant, le résultat attendu, ancienneté en années et mois, durée exacte d’un CDD, ne s’obtient pas avec une simple soustraction. Excel propose des fonctions dédiées, mais elles ont chacune leurs limites. Voici comment les utiliser sans se tromper.
Pourquoi la soustraction seule ne suffit pas pour calculer une ancienneté
Quand vous soustrayez deux dates dans Excel, vous obtenez un nombre de jours. Par exemple, entre le 01/03/2020 et le 01/03/2025, Excel affiche 1826. Ce chiffre est exact, mais il ne vous dit pas directement « 5 ans ».
Pour une durée de contrat ou une ancienneté, on raisonne en années et en mois entiers, pas en jours bruts. C’est là qu’interviennent des formules spécialisées.
Autre point à noter : la soustraction classique exclut la date de fin. Si un contrat court du 1er janvier au 31 janvier, le calcul donne 30 jours, pas 31. Selon la convention de décompte retenue dans votre entreprise, cela peut faire une différence.
La fonction DATEDIF pour calculer ancienneté en années, mois et jours
La fonction DATEDIF est l’outil le plus direct pour ce type de calcul. Elle calcule l’écart entre une date de début et une date de fin selon l’unité choisie.
Sa syntaxe est la suivante :
=DATEDIF(date_début ; date_fin ; unité)
Les unités disponibles sont :
- « Y » : nombre d’années complètes écoulées entre les deux dates.
- « M » : nombre de mois complets écoulés.
- « D » : nombre de jours complets écoulés.
- « YM » : mois restants après déduction des années complètes (utile pour afficher « 3 ans et 7 mois »).
- « YD » : jours restants après déduction des années complètes.
- « MD » : jours restants après déduction des mois complets – cette unité est à éviter, car Microsoft signale qu’elle peut produire des résultats incorrects, voire négatifs.
Exemple concret : un salarié embauché le 15 juin 2019 est toujours en poste aujourd’hui. Pour calculer son ancienneté en années complètes, vous écrivez en cellule C2 :
=DATEDIF(A2 ; AUJOURDHUI() ; « Y »)
Pour obtenir les mois restants au-delà des années complètes :
=DATEDIF(A2 ; AUJOURDHUI() ; « YM »)
En combinant les deux dans une même cellule avec l’opérateur &, vous pouvez afficher « 5 ans et 3 mois » directement dans votre tableau.
Utiliser AUJOURDHUI() pour un calcul de durée de contrat dynamique
Avez-vous déjà ouvert un fichier Excel plusieurs mois après sa création et constaté que les durées n’étaient plus à jour ? C’est parce que la date de fin était saisie en dur.
La fonction AUJOURDHUI() résout ce problème. Elle renvoie automatiquement la date du jour à chaque ouverture du fichier. Pour suivre l’ancienneté d’un salarié toujours en poste, remplacez la date de fin par AUJOURDHUI() dans votre formule DATEDIF.
En revanche, pour un contrat terminé, saisissez la date de fin réelle dans une cellule et référencez-la. Ainsi, le calcul reste stable et n’évolue plus après la fin du contrat.

Alternative à DATEDIF : calculer la différence de dates sans fonction cachée
DATEDIF est une fonction héritée d’un ancien tableur. Elle fonctionne dans Excel, mais elle n’apparaît pas dans l’aide officielle ni dans la saisie automatique. Certains préfèrent s’en passer.
Pour calculer uniquement des années, la fonction FRACTION.ANNEE est une alternative fiable. Elle calcule la fraction d’année entre deux dates selon différents modes de décompte des jours.
Syntaxe : =FRACTION.ANNEE(date_début ; date_fin ; base)
Avec base = 1 (décompte réel), le résultat est un nombre décimal. Pour obtenir le nombre d’années complètes, encapsulez la formule dans ENT() : =ENT(FRACTION.ANNEE(A2 ; B2 ; 1))
Cette approche est plus transparente et documentée que DATEDIF. Elle est particulièrement utile quand vous devez justifier votre méthode de calcul auprès d’un tiers.
Ce qu’Excel ne peut pas faire seul dans le calcul d’ancienneté
Excel calcule des durées. Il ne détermine pas l’ancienneté juridique.
En droit du travail français, la situation est plus complexe que la simple addition de périodes. Par exemple, lorsqu’un CDD se poursuit sans interruption et se transforme en CDI, le salarié conserve l’ancienneté acquise pendant le CDD. Une formule Excel qui additionne mécaniquement deux périodes séparées peut donner un résultat différent de celui retenu en droit.
Le tableur est un outil de calcul, pas un outil d’analyse juridique. Pour les situations avec contrats successifs, interruptions ou requalifications, le résultat produit par Excel doit être interprété en fonction des règles applicables dans votre entreprise ou convention collective.
Construire un tableau de suivi des anciennetés dans Excel
Voici une structure simple et efficace pour suivre l’ancienneté de plusieurs salariés :
Créez une feuille avec au minimum quatre colonnes : nom du salarié en A, date d’embauche en B, date de fin (ou AUJOURDHUI() pour les contrats en cours) en C, et la formule de calcul en D.
En D2, saisissez :
=DATEDIF(B2 ; C2 ; « Y ») & » ans et » & DATEDIF(B2 ; C2 ; « YM ») & » mois »
Cette formule affiche directement « 4 ans et 2 mois » dans la cellule. Vous pouvez ensuite la copier sur toutes les lignes du tableau.
Pour automatiser la colonne C sur les contrats en cours, une formule conditionnelle fonctionne bien : si la cellule « date de fin » est vide, utiliser AUJOURDHUI(), sinon utiliser la date saisie. Cela se traduit par : =SI(C2= » » ; AUJOURDHUI() ; C2) placé dans une colonne intermédiaire.
Un tableau bien structuré évite les erreurs de référence et simplifie les mises à jour quand un nouveau contrat s’ajoute.
Les erreurs fréquentes dans le calcul de différence de dates Excel
Quelques pièges reviennent souvent lors de la mise en place de ces formules :
- La cellule de résultat affiche une date au lieu d’un nombre : cela signifie que le format de cellule est « Date ». Passez-le en format « Nombre » ou « Standard » pour afficher la valeur numérique correctement.
- DATEDIF renvoie une erreur #NUM! : c’est que la date de début est postérieure à la date de fin. Vérifiez l’ordre des arguments.
- L’unité « MD » donne un résultat négatif ou inattendu : c’est un comportement documenté par Microsoft. Remplacez-la par un calcul alternatif ou acceptez de ne pas détailler les jours restants.
Ces erreurs sont faciles à corriger une fois qu’on en connaît la cause. La plupart viennent d’un format de cellule mal configuré, pas d’un problème dans la formule elle-même.
Pour les calculs d’ancienneté utilisés dans un contexte de paie ou de gestion RH, il reste utile de croiser le résultat Excel avec les données issues de votre logiciel de paie, notamment quand des périodes d’absence ou des contrats antérieurs entrent en jeu.

