Calculer le nombre de jours entre deux dates dans Excel se fait en quelques secondes avec les bonnes formules. Trois approches coexistent : la soustraction directe, la fonction JOURS et la fonction DATEDIF. Chacune répond à un besoin précis, et confondre l’une avec l’autre produit des résultats inexacts sans que le tableur génère la moindre alerte.
Soustraction et fonction JOURS : choisir la bonne pour votre calcul
La méthode la plus rapide pour calculer une différence de dates reste la soustraction simple. Si la date de début est en A2 et la date de fin en B2, la formule =B2-A2 retourne le nombre de jours écoulés entre les deux. Excel traite chaque date comme un numéro de série : le résultat est donc une différence de nombres entiers.
La fonction JOURS produit le même résultat avec une syntaxe explicite :
=JOURS(B2;A2)
L’ordre des arguments est inversé par rapport à la soustraction : date de fin en premier, date de début en second. Une inversion retourne un nombre négatif sans message d’erreur.
Le cas où il faut ajouter 1
Ces deux formules calculent un écart, pas une durée inclusive. Pour une période de présence – par exemple un agent présent du lundi au vendredi inclus – le décompte doit inclure le jour de départ. Dans ce cas, =B2-A2+1 donne le bon résultat. La décision d’ajouter ou non ce « +1 » dépend du besoin métier, pas de la formule.
L’effet invisible des heures dans les cellules
Excel représente les heures comme des fractions de journée. Une cellule contenant « 14/06/2025 09:00 » n’est pas une date : c’est un nombre décimal. Soustraire deux horodatages produit alors une durée fractionnaire. Pour extraire uniquement la partie « jours calendaires », la formule =ENT(B2)-ENT(A2) isole les entiers et écarte les fractions d’heure.

La fonction DATEDIF et ses unités de calcul
DATEDIF (contraction de « date difference ») n’apparaît pas dans la liste officielle des fonctions Excel : elle a été conservée pour assurer la compatibilité avec Lotus 1-2-3, l’ancien tableur de référence. Elle reste fonctionnelle, mais Microsoft signale qu’elle peut produire des résultats incorrects dans certains scénarios. Son avantage : elle permet de calculer la différence non seulement en jours, mais aussi en mois et en années complètes.
La syntaxe est la suivante :
=DATEDIF(date_début ; date_fin ; « unité »)
Le troisième argument détermine l’unité retournée. Les unités disponibles sont :
- « d » : nombre de jours complets entre les deux dates. Équivalent à la soustraction pour les cas simples.
- « m » : nombre de mois complets écoulés, sans fraction.
- « y » : nombre d’années complètes, utile pour calculer un âge ou une ancienneté.
- « ym » : mois restants après déduction des années complètes, pour construire un résultat composite « X ans Y mois ».
- « md » : jours restants après déduction des mois complets. Microsoft signale que cette unité est sujette à erreurs dans certains cas de fin de mois.
Si la date de début est postérieure à la date de fin, DATEDIF retourne une erreur #NOMBRE! – contrairement à la soustraction simple qui retourne un négatif. Ce comportement doit être anticipé lorsque les dates peuvent s’inverser selon la saisie utilisateur.
Compter les jours ouvrés entre deux dates : NB.JOURS.OUVRES
Quand le besoin est de calculer une durée de travail et non un écart calendaire, la soustraction simple ne suffit plus. Excel dispose de deux fonctions dédiées aux jours ouvrés.
NB.JOURS.OUVRES(date_début ; date_fin ; [jours_fériés]) exclut automatiquement les samedis et dimanches. Le troisième argument, facultatif, accepte une plage de cellules contenant les jours fériés à exclure en plus. Sans cette plage, la fonction compte tous les jours de semaine, fériés compris.
Quand le week-end n’est pas samedi-dimanche
Pour les organisations dont le rythme de travail diffère du schéma standard, NB.JOURS.OUVRES.INTL ajoute un argument « week-end » qui permet de définir quels jours sont non travaillés. Un code numérique ou une chaîne binaire de sept caractères indique jour par jour si chaque position de la semaine est travaillée ou non. Cette granularité couvre des plannings alternatifs sans recourir à des formules manuelles.
Tableau récapitulatif : quelle formule pour quel besoin
| Besoin | Formule | Remarque |
|---|---|---|
| Écart en jours (simple) | =B2-A2 | Exclut le jour de départ |
| Écart en jours (inclusif) | =B2-A2+1 | Inclut le jour de départ et d’arrivée |
| Écart avec horodatage | =ENT(B2)-ENT(A2) | Ignore la partie heure |
| Différence en mois complets | =DATEDIF(A2;B2; »m ») | Arrondi à l’inférieur |
| Différence en années | =DATEDIF(A2;B2; »y ») | Utile pour âge ou ancienneté |
| Jours ouvrés (lun-ven) | =NB.JOURS.OUVRES(A2;B2;fériés) | Plage fériés optionnelle |
| Jours ouvrés (schéma custom) | =NB.JOURS.OUVRES.INTL(A2;B2;code;fériés) | Week-end paramétrable |
Erreurs fréquentes et points de vigilance
Un résultat affiché comme une date plutôt qu’un nombre signale un problème de format. Après une soustraction, Excel peut conserver le format « date » sur la cellule résultat : il faut appliquer le format « Nombre » pour afficher la valeur entière attendue.
L’unité « md » de DATEDIF – censée retourner les jours restants après déduction des mois – produit des résultats incorrects en fin de mois dans certaines configurations. Microsoft le documente explicitement. Quand cette précision est nécessaire, il vaut mieux combiner DATEDIF avec les unités « y » et « ym » et gérer les jours restants par une formule auxiliaire.
Pour les calculs de jours ouvrés avec jours fériés, la plage fériés doit être une liste de dates exactes, saisies dans des cellules formatées en date. Une liste de textes comme « 25/12/2025 » sans conversion génère une erreur silencieuse : la fonction ignore les fériés sans alerter.
Ces trois fonctions – soustraction, DATEDIF, NB.JOURS.OUVRES – couvrent la grande majorité des besoins courants. Le choix entre elles ne dépend pas de leur complexité mais de la définition exacte de ce que le calcul doit mesurer : un écart, une durée inclusive ou un nombre de jours travaillés.

