Qu'est-ce que la fonction JOURS ?
JOURS (DAYS en anglais) te sert dès que tu veux sécuriser un calcul de délai que tu ferais autrement par une simple soustraction de dates, avec le risque de la voir échouer silencieusement sur une cellule mal formatée. Tu t'en sers pour bâtir un suivi de délais fiable : durée d'un projet, ancienneté d'un collaborateur, jours écoulés depuis une facture.
La grande force de JOURS, c'est sa clarté : =JOURS(date_fin;date_début) se lit comme on le prononce. Elle se met à jour automatiquement quand tu la combines avec AUJOURDHUI(), ce qui en fait la base idéale des tableaux de bord de suivi de délais.

Comprendre chaque paramètre de la fonction JOURS
Les deux dates s'écrivent dans l'ordre inverse de ce qu'on dit à voix haute : la date_fin vient en premier, la date_début en second. Inverse-les et tu récoltes un nombre négatif au lieu du décompte attendu. Les deux sont obligatoires, et l'une comme l'autre accepte une cellule, une date entre guillemets ou un résultat de fonction comme AUJOURDHUI().
date_fin
: la date jusqu'à laquelle tu veux calculerTu peux passer une référence de cellule, une date saisie en dur entre guillemets ("31/12/2024"), le résultat d'une fonction comme AUJOURDHUI() ou DATE(2024;12;31).
Si tu veux savoir combien de jours il reste avant une échéance, c'est la date d'échéance qui sera ta date_fin. Excel accepte les dates sous tous leurs formats valides : numéro de série interne, texte formaté en date, ou résultat de fonction.
date_début
: la date de départ du calculJOURS soustrait cette date de date_fin pour obtenir le nombre de jours. L'ordre des paramètres est date_fin en premier, date_début en second, ce qui est l'inverse de ce à quoi on pourrait s'attendre.
Si date_début est postérieure à date_fin, le résultat sera négatif. Cela peut être utile pour identifier des retards ou détecter des inversions de dates dans tes données.
Attention : Si l'une des deux dates est du texte non convertible, comme « En attente », JOURS retourne #VALEUR!. Une cellule vide ne déclenche pas d'erreur : elle vaut zéro, donc le 00/01/1900, ce qui donne un résultat aberrant sans prévenir. Vérifie que tes cellules contiennent des dates valides, notamment après un import de données.

Exemples pratiques pas à pas
Comment calculer le nombre de jours entre deux dates avec la fonction JOURS
Le comité de pilotage veut savoir combien de temps a réellement duré chaque projet de l'année. Tu as la liste des projets avec leur responsable, leur date de début et leur date de fin, et il te faut la durée en jours sur toute la colonne. La fonction JOURS te donne le nombre de jours entre deux dates d'un coup, sans que tu comptes les cases d'un calendrier.
- 1Dans une cellule, écris
=JOURS(. - 2En 1er argument : clique sur la date qui arrive en dernier dans le temps,
D2. Elle contient le 15 mai 2024 pour le projet PRJ-01, et c'est ce qui déroute au début, car on dit « du 1er mars au 15 mai » alors qu'Excel réclame la date de fin en premier. - 3En 2ᵉ argument : clique sur la date d'où part le décompte,
C2. Elle porte le 1er mars 2024 pour ce projet, et la fonction JOURS la retranche de la date de fin ; intervertir les deux références donne le même écart, mais en négatif. - 4Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas pour obtenir la durée de chaque projet de la liste.
=JOURS(D2; C2)Comment calculer le nombre de jours restants avant une échéance avec les fonctions JOURS et AUJOURDHUI
Nous sommes le 15 janvier 2025, un client t'appelle pour savoir si sa facture est encore dans les temps, et tu n'as pas envie de rouvrir le calendrier à chaque coup de fil. Tes factures sont listées avec leur date d'échéance, et tu veux un décompte des jours restants qui soit juste chaque matin sans que tu y touches. En imbriquant la fonction AUJOURDHUI dans la fonction JOURS, le compteur se recalcule tout seul à l'ouverture du fichier.
- 1Dans une cellule, écris
=JOURS(. - 2En 1er argument : clique sur l'échéance à surveiller,
C2. Elle porte le 20 janvier 2025 pour la facture FAC-2451, et comme c'est le point d'arrivée du décompte, elle vient en premier dans la fonction JOURS. - 3En 2ᵉ argument : écris la fonction
AUJOURDHUI()au lieu d'une date figée, car elle renvoie la date du jour sans prendre aucun argument. Excel la réévalue à chaque ouverture du classeur, donc le nombre de jours restants baisse d'une unité chaque jour sans que tu retouches la colonne. - 4Ferme la parenthèse de la fonction JOURS et appuie sur Entrée. Celle de la fonction AUJOURDHUI est déjà refermée, ses parenthèses vides restant obligatoires même sans argument.
=JOURS(C2; AUJOURDHUI())Comment afficher un statut automatique avec les fonctions JOURS et SI
Un tableau qui affiche « -5 » ne parle à personne quand tu l'envoies par mail à ton chef. Tu repars des mêmes factures et de leur date d'échéance, mais cette fois tu veux un mot lisible dans la colonne plutôt qu'un nombre à décoder. La fonction SI se sert du décompte produit par la fonction JOURS et écrit le statut à ta place, ligne après ligne.
- 1Dans une cellule, écris
=SI(. - 2En 1er argument : écris le test qui départage les factures,
JOURS(B2; AUJOURDHUI())<0. La fonction JOURS calcule les jours qui restent jusqu'à l'échéanceB2, et lui accoler<0revient à demander si cette échéance est déjà derrière nous. - 3En 2ᵉ argument : écris ce qui s'affiche quand le test est vrai,
"En retard". Les guillemets sont obligatoires pour qu'Excel traite ces mots comme du texte à recopier tel quel et non comme un nom de plage. - 4En 3ᵉ argument : écris ce qui s'affiche quand le test est faux,
"Dans les temps". La fonction SI choisit toujours entre ces deux sorties, jamais une troisième. - 5Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas pour afficher le statut de chaque facture.
=SI(JOURS(B2; AUJOURDHUI())<0; "En retard"; "Dans les temps")<0 est donc faux et la colonne affiche « Dans les temps ». Comme la date du jour se réévalue toute seule, un statut bascule de lui-même le lendemain de l'échéance.Comment gérer l'erreur #VALEUR! avec les fonctions JOURS et SIERREUR
Tu récupères l'export d'un outil de suivi et la colonne des dates de fin contient des « En attente » tapés à la main. Résultat, ta colonne de durées se couvre de #VALEUR! et le tableau devient illisible à une heure de la réunion. La fonction SIERREUR enveloppe la fonction JOURS et remplace chaque erreur par un message clair, sans que tu ailles nettoyer les lignes une par une.
- 1Dans une cellule, écris
=SIERREUR(. - 2En 1er argument : écris le calcul normal,
JOURS(C2; B2), qui rend la durée du dossier en jours quand les deux cellules contiennent bien des dates. C'est ce résultat que la fonction SIERREUR laisse passer tant qu'aucune erreur ne surgit. - 3En 2ᵉ argument : écris ce que la fonction doit afficher à la place de l'erreur,
"Date à saisir". Ce texte n'apparaît que si la fonction JOURS échoue, et le calcul reste intact sur toutes les lignes où les dates sont valides. - 4Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas pour couvrir toute la colonne des durées.
=SIERREUR(JOURS(C2; B2); "Date à saisir")
Les erreurs fréquentes avec la fonction JOURS
Deux symptômes reviennent avec JOURS, et le plus fréquent est le #VALEUR! : il surgit dès qu'une de tes cellules contient du texte ressemblant à une date plutôt qu'une vraie date, ce qui arrive presque toujours après un import. L'autre cas, plus sournois car silencieux, c'est le résultat négatif quand tu as interverti date_fin et date_début.
Erreur #VALEUR! : date invalide restée en texte
Cette erreur apparaît quand l'un des arguments est du texte qu'Excel n'arrive pas à lire comme une date. Causes fréquentes : une mention libre du genre « En attente » tapée à la main, du texte non converti après un import, ou un format de date incorrect selon les paramètres régionaux du poste. Une cellule vide, en revanche, ne renvoie pas d'erreur : elle vaut zéro et donne un nombre de jours énorme.
Solution : Vérifie que tes cellules sont formatées en Date via Ctrl+1. Si des dates sont en texte, utilise la fonction DATEVAL pour les convertir. Tu peux aussi protéger la formule avec =SIERREUR(JOURS(B2;A2);"").
Résultat négatif inattendu
JOURS soustrait date_début de date_fin. Si tu as inversé l'ordre des paramètres, ou si date_début est postérieure à date_fin dans tes données, le résultat est négatif.
Solution : Vérifie l'ordre des paramètres : date_fin en premier, date_début en second. Pour obtenir toujours un nombre positif quelle que soit l'orientation, utilise =ABS(JOURS(B2;A2)). Pour détecter les inversions de dates dans tes données, filtre sur les résultats négatifs.

JOURS vs DATEDIF vs NB.JOURS.OUVRES vs soustraction directe
Prends JOURS quand tu veux juste un nombre de jours calendaires bien lisible : elle fait la même chose que =fin-début mais te prévient par une erreur si une des cellules n'est pas une date. Bascule sur DATEDIF dès que tu raisonnes en mois ou en années (ancienneté), et sur NB.JOURS.OUVRES quand les week-ends et jours fériés ne doivent pas compter, comme pour un délai contractuel.
| Critère | JOURS | DATEDIF | NB.JOURS.OUVRES | Soustraction directe |
|---|---|---|---|---|
| Ce que ça calcule | Jours calendaires entre deux dates | Différence en jours, mois ou années | Jours ouvrés uniquement | Jours calendaires (=fin-début) |
| Unités disponibles | Jours uniquement | Jours, mois, années | Jours ouvrés | Jours uniquement |
| Gestion des jours fériés | Non | Non | Oui (paramètre optionnel) | Non |
| Lisibilité | Très claire | Claire mais syntaxe spécifique | Claire | Moins explicite |
| Cas typique | Durée de projet, délai facture | Ancienneté en années/mois | Délais contractuels | Calculs rapides |
Questions fréquentes
JOURS calcule simplement le nombre de jours calendaires entre deux dates. DATEDIF est plus polyvalente : elle peut calculer la différence en années ("Y"), en mois ("M") ou en jours ("D"), et même des combinaisons comme les mois complets restants après les années. Utilise JOURS pour un comptage de jours simple et lisible.
JOURS accepte les dates dans n'importe quel ordre. Si date_fin est antérieure à date_début, le résultat sera négatif. Par exemple, =JOURS("01/01/2024";"31/12/2024") retourne -364. Pour toujours obtenir un résultat positif, enveloppe dans ABS.
Non, JOURS compte tous les jours calendaires, y compris les week-ends et les jours fériés. Pour compter uniquement les jours ouvrés entre deux dates, utilise NB.JOURS.OUVRES qui peut aussi exclure une liste de jours fériés.
Oui, JOURS fonctionne avec n'importe quelle date valide dans Excel, passée, présente ou future. Pour calculer le nombre de jours jusqu'à une échéance future, utilise =JOURS(date_echéance;AUJOURDHUI()) : le résultat se met à jour chaque jour automatiquement.
Techniquement, =JOURS(B2;A2) et =B2-A2 donnent le même résultat pour des dates valides. JOURS est préférable car elle est auto-documentée (on lit immédiatement qu'on calcule des jours) et elle lève une erreur claire si l'un des arguments n'est pas une date, là où la soustraction peut retourner un résultat étrange sans avertissement.
Pour aller plus loin
Continue sur ta lancée après la fonction JOURS : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voirLes dates et heures dans Excel

Le modèle Excel « Rétro-planning »

Le guide complet pour bien démarrer sur Excel




