Vous suivez des échéances dans un tableau Excel et vous avez besoin de savoir si un contrat est échu, si un délai est dépassé ou combien de mois séparent deux dates. La fonction DATEDIF calcule un écart entre deux dates. La fonction SI teste une condition et renvoie un résultat adapté. Combinées, ces deux formules transforment un simple calcul de date différence Excel en indicateur dynamique qui se met à jour tout seul.
Pourquoi DATEDIF ne figure pas dans l’autocomplétion Excel
Quand vous commencez à taper une formule dans une cellule, Excel propose une liste de fonctions. DATEDIF n’y apparaît pas. La fonction existe pourtant depuis les premières versions du tableur, héritée de Lotus 1-2-3.
A lire aussi : Comment valoriser la maîtrise d'excel sur un CV
Microsoft la documente sur son site de support, mais signale qu’elle peut produire des résultats incorrects dans certains scénarios. C’est la raison pour laquelle elle reste absente de la liste officielle des fonctions.
En pratique, elle fonctionne parfaitement pour la majorité des cas courants. Sa syntaxe est simple : =DATEDIF(date_debut; date_fin; unite). L’unité accepte six codes.
Lire également : Comment calculer le pourcentage sur Excel pour vos rapports professionnels ?
- « d » renvoie le nombre de jours complets entre les deux dates
- « m » renvoie le nombre de mois complets
- « y » renvoie le nombre d’années complètes
- « md » renvoie les jours restants après décompte des mois complets
- « ym » renvoie les mois restants après décompte des années complètes
- « yd » renvoie les jours restants après décompte des années complètes
Un piège fréquent : si la date de début est postérieure à la date de fin, DATEDIF renvoie une erreur #NOMBRE!. C’est précisément là que la fonction SI entre en jeu.

Formule SI et DATEDIF pour gérer les dates futures et passées
Imaginons un tableau de suivi de contrats. La colonne A contient la date de fin de contrat, et vous voulez afficher « Échu » ou « En cours » selon la date du jour. Une soustraction simple ne suffit pas, parce qu’elle ne gère pas le cas où la date de fin est déjà dépassée.
Voici la formule qui règle le problème :
=SI(A2<AUJOURDHUI(); « Échu »; « En cours »)
Cette formule teste si la date en A2 est antérieure à la date du jour. Si oui, le contrat est échu. Sinon, il est en cours. Le résultat se recalcule chaque fois que vous ouvrez le fichier, grâce à la fonction AUJOURDHUI() qui renvoie toujours la date actuelle.
Vous pouvez aller plus loin en affichant le nombre de jours restants avant échéance, ou le nombre de jours de retard :
=SI(A2>=AUJOURDHUI(); DATEDIF(AUJOURDHUI(); A2; « d ») & » jours restants »; « Échu depuis » & DATEDIF(A2; AUJOURDHUI(); « d ») & » jours »)
La clé ici : la fonction SI inverse l’ordre des dates selon le cas. Quand la date de fin est dans le futur, AUJOURDHUI() passe en premier argument de DATEDIF. Quand elle est dans le passé, c’est la date de fin qui passe en premier. Vous évitez ainsi l’erreur #NOMBRE!.
Calcul dynamique d’ancienneté avec seuils conditionnels
Le duo SI + DATEDIF prend toute sa valeur quand vous devez classer des résultats par seuils. Prenons un exemple concret en ressources humaines : calculer l’ancienneté d’un collaborateur et afficher un statut selon le nombre d’années.
Date d’entrée en cellule B2. Formule en cellule C2 :
=SI(DATEDIF(B2; AUJOURDHUI(); « y »)>=10; « Senior »; SI(DATEDIF(B2; AUJOURDHUI(); « y »)>=3; « Confirmé »; « Junior »))
Cette imbrication teste d’abord si l’ancienneté dépasse dix ans. Si non, elle vérifie si elle dépasse trois ans. Sinon, elle attribue le statut « Junior ». Le calcul se met à jour chaque jour sans intervention manuelle.
L’inconvénient de cette écriture : elle devient vite illisible avec trois seuils ou plus. Chaque condition SI supplémentaire ajoute une couche de parenthèses.
Remplacer les SI imbriqués par IFS pour plus de lisibilité
Depuis les versions récentes d’Excel (Microsoft 365 et Excel 2019+), la fonction IFS simplifie ce type de formule. Au lieu d’imbriquer plusieurs SI, vous écrivez :
=IFS(DATEDIF(B2; AUJOURDHUI(); « y »)>=10; « Senior »; DATEDIF(B2; AUJOURDHUI(); « y »)>=3; « Confirmé »; VRAI; « Junior »)
Chaque paire condition/résultat se lit de gauche à droite. Le dernier argument VRAI agit comme un « sinon » par défaut. IFS remplace avantageusement les imbrications lourdes de SI dès que vous dépassez deux conditions.

Tableau récapitulatif des formules date différence Excel avec SI
| Besoin | Formule | Résultat |
|---|---|---|
| Statut échu / en cours | =SI(A2<AUJOURDHUI(); « Échu »; « En cours ») | Texte dynamique |
| Jours restants ou retard | =SI(A2>=AUJOURDHUI(); DATEDIF(AUJOURDHUI();A2; »d »)& » jours »; « Retard « &DATEDIF(A2;AUJOURDHUI(); »d »)& » j ») | Nombre + texte |
| Ancienneté par seuil | =IFS(DATEDIF(B2;AUJOURDHUI(); »y »)>=10; »Senior »; DATEDIF(B2;AUJOURDHUI(); »y »)>=3; »Confirmé »; VRAI; »Junior ») | Catégorie |
| Mois complets entre deux dates | =DATEDIF(A2;B2; »m ») | Nombre entier |
Erreurs courantes dans les formules DATEDIF et SI sous Excel
La première source d’erreur reste l’ordre des dates. DATEDIF exige que la date de début soit antérieure à la date de fin. Si vous n’encapsulez pas la formule dans un SI qui vérifie cet ordre, l’erreur #NOMBRE! apparaît dès qu’une date est inversée.
Deuxième piège : le format des cellules. Si Excel interprète vos dates comme du texte (alignement à gauche dans la cellule), DATEDIF ne peut pas les lire. Vérifiez que le format est bien « Date » dans le menu Format de cellule.
Troisième point : les unités « md » et « yd » de DATEDIF sont connues pour produire parfois des résultats incohérents, comme le mentionne la documentation Microsoft. Pour un calcul fiable en jours restants après décompte des mois, préférez une combinaison de DATEDIF avec « m » et une soustraction manuelle plutôt que de vous fier à « md ».
Dernier réflexe à adopter : testez toujours votre formule avec une date passée et une date future. Si les deux cas renvoient un résultat cohérent, la combinaison SI + DATEDIF est correctement construite. Un test sur deux dates extrêmes détecte la majorité des erreurs avant de déployer la formule sur tout un tableau.

