Aller au contenu
Promptum Tableur Un site du réseau Promptum

Guide

Calculer des dates et des délais dans Excel : DATEDIF

Calculer un écart entre deux dates, un âge ou des jours ouvrés dans Excel avec DATEDIF et NB.JOURS.OUVRES, selon Microsoft, avec prompts.

Mis à jour le

Calculer un délai dans Excel demande de choisir la bonne unité : des jours calendaires, des mois complets, ou des jours ouvrés. DATEDIF calcule un écart en années, mois ou jours entre deux dates. NB.JOURS.OUVRES compte les jours de travail entre deux dates, en excluant les fins de semaine et une liste de jours fériés. Les deux fonctions répondent à des questions différentes, et la confusion produit des délais faux.

DATEDIF : écart entre deux dates

La syntaxe est DATEDIF(date_début; date_fin; unité). La page Microsoft donne le sens des unités. « Y » donne le nombre d'années complètes. « M » donne le nombre de mois complets. « D » donne le nombre de jours. « YM » donne la différence entre les mois, en ignorant les jours et les années. « YD » donne la différence entre les jours, en ignorant les années.

La page indique que si la date de début est postérieure à la date de fin, le résultat est #NUM!. Elle donne un exemple : du 01/06/2001 au 15/08/2002, l'unité « D » donne 440 jours, et l'unité « YD » donne 75 jours, en ignorant les années.

Microsoft déconseille l'unité « MD », qui comporte des limites connues et peut renvoyer un résultat négatif, zéro ou imprécis. Pour un calcul d'âge ou d'ancienneté, combinez Y pour les années et YM pour les mois restants.

NB.JOURS.OUVRES : jours de travail

La syntaxe est NB.JOURS.OUVRES(date_début; date_fin; [jours_fériés]). La page précise que les jours ouvrés excluent les fins de semaine et toutes les dates identifiées comme jours fériés. Le troisième argument est facultatif : il peut être une plage de cellules contenant des dates.

L'exemple de Microsoft : du 01/10/2012 au 01/03/2013, la fonction donne 110 jours ouvrés. Si un jour férié du 22/11/2012 est indiqué, elle donne 109. Avec trois jours fériés en plage, elle donne 107.

Prompt 1 : choisir la bonne fonction

Je dois calculer [type de délai, par exemple : le délai de traitement d'une demande, l'âge d'un contrat, l'ancienneté d'un salarié] entre deux dates de la colonne [lettre début] et [lettre fin]. L'unité attendue est [jours calendaires, jours ouvrés, mois complets, années]. Ma version d'Excel est [version].
Propose la formule adaptée, avec les arguments dans l'ordre, et dis si DATEDIF ou NB.JOURS.OUVRES convient. Explique le cas où la date de fin peut être vide.

Prompt 2 : gérer les jours fériés

Je veux un nombre de jours ouvrés avec NB.JOURS.OUVRES. Les jours à exclure sont listés dans la colonne [lettre] de la feuille [nom], au format JJ/MM/AAAA. Écris la formule avec cette plage, et propose une vérification : nombre de jours ouvrés pour une période de test dont tu indiques le calcul, sans données réelles.

Prompt 3 : contrôler un résultat

Voici ma formule : [formule]. Pour la ligne de test, la date de début est [date] et la date de fin est [date]. Le résultat obtenu est [nombre] et je pense qu'il devrait être [nombre]. Liste les causes possibles : ordre des dates, date saisie en texte, unité mal choisie, jours fériés oubliés, date de fin vide.

Exemple concret

Un service traite des demandes. Vous voulez le nombre de jours ouvrés entre la réception (colonne B) et la clôture (colonne C). La formule NB.JOURS.OUVRES(B2;C2;Feries!A2:A20) compte les jours de travail en excluant les jours fériés listés dans l'onglet Feries. Pour l'ancienneté d'une personne, DATEDIF(B2;AUJOURDHUI();"Y") donne les années complètes. Les deux formules ne se remplacent pas.

À vérifier

  • L'ordre des dates : la date de début doit précéder la date de fin, sinon #NUM!.
  • Le format : une date saisie en texte n'est pas comptée comme une date.
  • La date de fin vide : elle donne un résultat faux ou une erreur selon la formule. Traitez ce cas à part.
  • Les jours fériés : la liste doit être complète et exacte. Vérifiez-la avec une source officielle.
  • L'unité MD : Microsoft la déconseille.
  • Le compte : une période de test dont vous connaissez le résultat vaut mieux qu'une lecture rapide.

Google Sheets

La liste des fonctions Google Sheets, en français, cite DATEDIF et NB.JOURS.OUVRES. Nous n'avons pas lu leurs pages d'aide Google : la syntaxe de ces fonctions dans Sheets n'est pas reprise ici. Vérifiez-la sur la page Google correspondante avant de la copier.

Un point juridique à ne pas confondre

Un délai calculé dans un tableur n'est pas un délai juridique. Les délais légaux ou contractuels se vérifient dans le texte qui les fixe. Le tableur calcule ce qu'on lui demande ; il ne sait pas quelle règle s'applique. Pour un sujet de ce type, la question se pose à la personne qui suit le dossier.

Pour mettre en forme les dates en retard, voyez la page mise en forme conditionnelle. Pour une somme par période, voyez SOMME.SI.ENS.

Résumé

DATEDIF donne un écart calendaire en années, mois ou jours ; NB.JOURS.OUVRES compte les jours de travail en excluant les fins de semaine et les jours fériés listés. Vérifiez l'ordre des dates, le format, et la liste des jours fériés, puis testez sur une période dont vous connaissez le résultat.

Questions fréquentes

Pourquoi DATEDIF renvoie-t-il #NUM! ?

La page Microsoft indique que si la date de début est supérieure à la date de fin, le résultat est #NUM!. Vérifiez l'ordre des deux dates.

DATEDIF compte-t-il les jours ouvrés ?

Non. DATEDIF compte des jours, des mois ou des années. Pour les jours ouvrés, la page Microsoft présente NB.JOURS.OUVRES, qui exclut les fins de semaine et les jours fériés indiqués.

Faut-il utiliser l'unité MD de DATEDIF ?

Microsoft déconseille l'unité MD, qui comporte des limites connues. Préférez un calcul en deux étapes, avec les unités Y, M et D.

Sources

Pages consultées pour écrire cet article :

  1. https://support.microsoft.com/fr-fr/office/fonction-datedif-25dba1a4-2812-480b-84dd-8b32a451b35c
  2. https://support.microsoft.com/fr-fr/excel/functions/networkdays-function
  3. https://support.google.com/docs/table/25273?hl=fr

À lire aussi