T’as déjà passé dix minutes à compter des jours entre deux dates, à te demander pourquoi Excel te renvoie un nombre bizarre? Le calcul de durée, c’est la base, et pourtant chaque méthode a ses pièges. On va reprendre depuis le début: les quatre façons de faire, celle qui cartonne, et quand ne surtout pas utiliser l’une ou l’autre.
La star de cet article, c’est DATEDIF. Microsoft la cache un peu, mais une fois que tu la maîtrises, tu calcule des écarts en jours, mois ou années sans te prendre la tête. On va voir pourquoi.
La soustraction: le réflexe qui marche souvent
Le plus simple: tu mets une date dans A1, une autre dans A2, et tu tapes =A2-A1. Excel affiche un nombre entier: le nombre de jours écoulés entre les deux.
C’est immédiat, sans argument, et ça fonctionne parce qu’Excel stocke les dates comme des numéros de série (le 1er janvier 1900 = 1). La différence donne donc un nombre de jours.
Là où ça coince: si la date de fin est antérieure à la date de début, le résultat est négatif. Pas idéal pour un rapport. Et si tes cellules ne sont pas au format date, la soustraction échoue ou renvoie un nombre incohérent. Vérifier le format des cellules avant, c’est une bonne habitude qui t’évitera plus tard de devoir passer par un logiciel de récupération de données gratuit quand tu effaces des lignes par erreur en tentant de corriger.
Autre limite: le résultat est un nombre brut. Si tu veux l’exploiter dans un calcul d’ancienneté ou de délai, il faut parfois convertir, et ça devient vite lourd.
JOURS(): pour ceux qui aiment les fonctions explicites
La fonction JOURS est arrivée avec Excel 2013. Sa syntaxe: =JOURS(date_fin; date_début). L’ordre est important, contrairement à la soustraction directe. Si tu inverses les deux dates, tu obtiens un nombre négatif.
L’avantage par rapport à une simple soustraction, c’est la lisibilité. Quand tu relis ta formule six mois plus tard, =JOURS(B2;A2) te parle tout de suite. La soustraction =B2-A2 peut rester ambiguë dans une feuille complexe.
JOURS gère les dates stockées sous forme de texte tant qu’Excel arrive à les convertir automatiquement. Pas besoin de pré-traiter avec DATEVAL. En pratique, pour un calcul de jours entre deux dates, c’est la voie du milieu: plus propre qu’une soustraction, moins puissante que DATEDIF.
Petit bémol: si tu veux exprimer la différence en mois ou en années, JOURS ne t’aide pas. Tu pourrais diviser par 30,44 ou 365,25, mais c’est bancal et ça ne tient pas compte des mois de 28 ou 31 jours, ni des années bissextiles. Pour ça, direction la section suivante.
NETWORKDAYS(): quand les week-ends comptent
Pour un décompte de jours ouvrés, la fonction NB.JOURS.OUVRES (NETWORKDAYS en anglais) est imbattable. Sa syntaxe: =NB.JOURS.OUVRES(date_début; date_fin; [jours_fériés]). Elle exclut automatiquement les samedis et dimanches, et tu peux lui passer une plage de dates fériées pour les retirer aussi.
Imaginons un projet qui démarre le 1er juin et doit se terminer le 15 juin. La soustraction te donne 14 jours, mais avec NB.JOURS.OUVRES, tu obtiens 10 jours ouvrés si ces deux semaines ne contiennent pas de jour férié.
La force de la fonction, c’est le paramètre facultatif [jours_fériés]. Tu listes dans une colonne les dates des jours fériés de ton pays ou de ton entreprise, et NB.JOURS.OUVRES les enlève. Pas besoin de bricolage avec des conditions.
Si ton week-end tombe un autre jour (par exemple dimanche uniquement, ou vendredi-samedi), il y a la version NB.JOURS.OUVRES.INTL qui te laisse définir quels jours sont chômés.
C’est la méthode qu’on recommande pour les plannings, les délais de livraison et tous les calculs où un jour calendaire n’a pas la même valeur qu’un jour travaillé.
DATEDIF(): la pépite cachée de Microsoft
DATEDIF n’est pas listée dans l’assistant de fonction d’Excel. Tu ne la trouves pas dans le ruban, et pourtant elle existe depuis des années, héritée de Lotus 1-2-3. Microsoft la maintient pour compatibilité, et elle reste la plus polyvalente pour calculer un écart entre deux dates.
La syntaxe exacte: =DATEDIF(date_début; date_fin; unité). L’unité est un code entre guillemets qui détermine ce que tu veux obtenir:
"d": nombre de jours (complet, entre les deux dates)"m": nombre de mois complets"y": nombre d’années complètes"yd": jours restants après avoir soustrait les années entières (pratique pour un âge exprimé en “X ans et Y jours”)"ym": mois restants après les années"md": jours restants après les mois (attention aux pièges, on y revient)
Cette variété d’unités fait de DATEDIF l’outil idéal pour des calculs d’ancienneté, d’âge, ou de durée précise. Tu peux combiner trois DATEDIF dans une même cellule pour afficher “2 ans, 5 mois, 17 jours”.
Mais comme elle est cachée, beaucoup passent à côté. La bonne nouvelle, c’est qu’une fois que tu connais la syntaxe, elle fonctionne exactement comme n’importe quelle autre fonction.
Avant d’aller plus loin, voici une démonstration vidéo qui montre comment utiliser DATEDIF dans Excel:
Les différentes unités disponibles
Prenons un cas concret: une date de début au 15 mars 2020 et une date de fin au 10 juillet 2023.
=DATEDIF("15/03/2020";"10/07/2023";"y")renvoie 3 (années complètes).- Avec
"m": 39 mois. - Avec
"d": 1212 jours. - Avec
"yd": 117 jours (les jours depuis le dernier anniversaire de la date de début, ici du 15 mars 2023 au 10 juillet 2023). - Avec
"ym": 3 mois (mars à juin 2023). - Avec
"md": 25 jours (du 15 juin au 10 juillet). Attention,"md"peut parfois produire des résultats surprenants si la date de fin tombe avant la date anniversaire mensuelle, car Excel tronque.
Le choix de l’unité dépend de ce que tu veux afficher. Pour un âge, tu utilises "y" et éventuellement "ym" et "md". Pour un écart en jours ouvrés, DATEDIF n’est pas conçue, mieux vaut NETWORKDAYS.
Le match: quelle méthode pour quel besoin?
Après avoir déroulé les quatre approches, on peut comparer clairement. Voici un tableau récapitulatif:
| Situation | Méthode recommandée | Pourquoi |
|---|---|---|
| Calcul simple de jours calendaires | Soustraction ou JOURS() | Rapide, sans fioriture |
| Écart en années, mois, jours détaillés | DATEDIF | Seule fonction native qui gère ces unités |
| Délai en jours ouvrés, hors week-ends | NETWORKDAYS | Automatique, intègre les jours fériés |
| Lisibilité maximale, autodocumentation | JOURS() | La formule indique clairement son intention |
| Compatibilité avec d’anciens fichiers | Soustraction ou DATEDIF | DATEDIF existe depuis les années 2000 |
La soustraction est le marteau: ça marche presque tout le temps, mais un marteau ne visse pas. DATEDIF, elle, c’est la perceuse-visseuse planquée au fond de la caisse à outils: peu de monde sait qu’elle est là, et elle fait des merveilles pour les travaux précis.
Pour voir ces méthodes en action côte à côte, cette vidéo compare les formules JOURS, DATEDIF et JOURS360:
Trois cas concrets où ça change tout
Les fonctions de date prennent tout leur sens quand on les applique à des besoins réels. Voici trois situations courantes.
L’âge en années et jours
Avec une date de naissance en A2, la formule =DATEDIF(A2;AUJOURDHUI();"y") te donne l’âge en années. Pour ajouter le détail, tu peux concaténer: =DATEDIF(A2;AUJOURDHUI();"y") & " ans, " & DATEDIF(A2;AUJOURDHUI();"ym") & " mois". Pas besoin de diviser des nombres de jours par 365,25.
Le délai d’un projet en jours ouvrés
Un projet démarre le 4 janvier 2027 et se termine le 29 janvier 2027. Tu as une plage JoursFériés en G2:G4. Cette formule: =NB.JOURS.OUVRES(B2;C2;G2:G4) donne le nombre exact de jours travaillés pendant cette période, hors week-ends et hors ponts.
La durée entre deux dates en mois et jours restants
En comptabilité, on a parfois besoin d’une ancienneté exprimée en mois et jours. DATEDIF avec "m" assure le nombre de mois, et "md" les jours résiduels. Attention: "md" peut mener à des résultats comme “10 mois, 30 jours” si les plages se chevauchent mal. Vérifie manuellement sur un petit échantillon.
Pour illustrer ces cas pratiques de manière dynamique, voici une autre vidéo qui montre comment calculer la différence entre deux dates dans des contextes variés:
Ce qui peut foirer (et comment éviter)
Dates inversées
Avec JOURS ou DATEDIF, si tu places la date de fin avant la date de début, la fonction renvoie une erreur #NOMBRE!. La soustraction, elle, donne un nombre négatif. Solution: toujours trier tes dates, ou utiliser une condition SI pour permuter automatiquement. Par exemple: =SI(B2<A2;A2-B2;B2-A2).
Dates au format texte
Excel ne sait pas toujours qu’une chaîne comme “12/03/2026” est une date. Si ta formule renvoie #VALEUR!, sélectionne les cellules et vérifie le format: clic droit, Format de cellule, Date. Parfois, tu dois convertir avec DATEVAL d’abord.
Erreur avec DATEDIF et certaines unités
L’unité "md" peut donner un résultat supérieur à 30 jours, surtout si la date de fin n’est pas le même mois que la date anniversaire de la date de début après la soustraction des années et des mois. Microsoft déconseille même cette unité dans sa documentation. Pour des affichages publics (comme un âge), préfère "y" + "ym", et laisse tomber "md" à moins d’avoir testé tous les cas limites.
Autre piège: DATEDIF est absente de l’auto-complétion. Tu tapes =DATEDIF(, Excel ne propose rien. Ne t’inquiète pas, elle est là. Si tu as un fichier important avec des formules critiques, une sauvegarde régulière peut t’éviter bien des sueurs froides. Si tu supprimes accidentellement une cellule, tu peux tenter une récupération de fichiers supprimés avec un outil adapté.
Formater le résultat pour qu’il reste lisible
Quand tu affiches seulement des jours, le nombre est lisible. Mais si tu combines années et mois, la cellule doit être au format texte, sinon Excel risque d’interpréter le résultat comme une date. La concaténation évoquée plus haut résout ce problème: =DATEDIF(A2;B2;"y")&" ans, "&DATEDIF(A2;B2;"ym")&" mois" renvoie du texte pur.
Si tu dois effectuer un calcul ultérieur sur ce résultat, mieux vaut garder les valeurs dans des cellules séparées et les recomposer à l’affichage avec une mise en forme conditionnelle. On évite ainsi de devoir récupérer des données depuis un disque dur après avoir tout converti en texte.
Questions fréquentes
Peut-on calculer le nombre de jours entre deux dates sans utiliser de fonction?
Oui, en soustrayant simplement les cellules: =A2-A1. C’est la méthode la plus directe. Le résultat est le nombre de jours entre les deux dates, qui peut être formaté en nombre via le menu Format de cellule > Nombre.
Comment obtenir le nombre de jours ouvrés sans la fonction NETWORKDAYS?
Techniquement, tu pourrais utiliser la fonction JOURSEM pour identifier les week-ends et les soustraire manuellement, mais c’est bien plus fastidieux et source d’erreurs. NETWORKDAYS (ou NB.JOURS.OUVRES) est la solution robuste. Si tu ne la connaissais pas, c’est le moment de l’adopter.
Pourquoi DATEDIF n’apparaît-elle pas dans l’auto-complétion d’Excel?
Microsoft a choisi de ne pas documenter DATEDIF en français et de la cacher dans l’interface. Elle reste fonctionnelle pour des questions de compatibilité avec d’anciens tableurs. Tu peux l’utiliser sans crainte dans Excel 2013, 2016, 2019, 365. Google Sheets la supporte également.
Peut-on calculer une durée en semaines?
Aucune fonction native ne donne directement des semaines, mais tu peux diviser le nombre de jours par 7. Par exemple, =JOURS(B2;A2)/7. Si tu veux un nombre entier de semaines, utilise =ENT(DATEDIF(A2;B2;"d")/7). Pour un reste en jours, ajoute MOD.
Votre recommandation sur calculer le nombre de jours entre deux dates sur excel
Quelques questions rapides pour adapter la recommandation à votre cas.
Merci, voici notre conseil personnalisé sur calculer le nombre de jours entre deux dates sur excel.
D'après vos réponses, le mieux est de reprendre l'article ci-dessus en focalisant sur les passages qui parlent de votre situation : c'est là que se trouvent les recommandations les plus concrètes pour vous. Bonne lecture !