Tutoriel réalisé avec Excel 2013
J’ai déjà traité rapidement de la formule DATEDIF dans le tutoriel sur la création d’un échéancier Excel, mais je vais approfondir un peu plus ses possibilités dans cet article.
La formule DATEDIF vous permet de calculer le nombre de jours, de mois, voire d’années, entre 2 dates. Notez que vos 2 dates doivent être au format date bien sûr et que la première date doit être antérieure à la seconde, auquel cas vous aurez une erreur #NOMBRE!.
La formule DATEDIF se décompose de cette manière :
=DATEDIF(date_début;date_fin;unité)
Le dernier argument vous permet de choisir l’unité dans laquelle renvoyer le calcul :
- Y (year) pour renvoyer le nombre d’années entières comprises entre les deux dates ;
- M (month) pour renvoyer le nombre de mois entiers compris entre les deux dates ;
- D (day) pour renvoyer le nombre de jours compris entre les deux dates ;
- Ym pour renvoyer le nombre de mois de différence entre les deux dates sans prendre en compte les années ;
- Yd pour renvoyer le nombre de jours de différence entre deux dates sans prendre en compte les années ;
- Md pour renvoyer le nombre de jours de différence entre deux dates sans prendre en compte les mois et les années.
Pour cet exemple, nous allons placer en A1 la date 01/01/2013 et en B1 10/05/2014. Nous calculerons la durée de la période en C1.
Cette formule peut être utilisée sans référence à une cellule, vous pouvez donc saisir les dates directement dans la formule sous cette forme :
=DATEDIF("01/01/2013";"10/05/2014";"m")
N’oubliez pas les guillemets auquel cas vous aurez une erreur #NOM ?.
SOMMAIRE
Calculer le nombre d’années entre deux dates
=DATEDIF(A1;B1;"y")
et vous obtenez 1 année.
Calculer le nombre de mois entre deux dates
=DATEDIF(A1;B1;"m")
et vous obtenez 16 mois.
Calculer le nombre de jours entre deux dates
=DATEDIF(A1;B1;"d")
et vous obtenez 494 jours.
Calculer le nombre de mois de différence entre deux dates sans prendre en compte les années
=DATEDIF(A1;B1;"ym")
et vous obtenez 4 mois, car il y a bien 4 mois entre janvier et mai.
Calculer le nombre de jours de différence entre deux dates sans prendre en compte les années
=DATEDIF(A1;B1;"yd")
et vous obtenez 129 jours, car il y a bien 129 jours entre le 1er janvier et le 10 mai.
Calculer le nombre de jours de différence entre deux dates sans prendre en compte les mois et les années
=DATEDIF(A1;B1;"md")
et vous obtenez 9 jours, car il y a bien 9 jours entre le 1er et le 10.
Calculer le nombre de jours entre une période passée et la date du jour
=DATEDIF("01/01/2013";AUJOURDHUI();"d")
sachant que vous pouvez remplacer d par un autre des arguments vus précédemment.
Calculer le nombre de jours entre la date du jour et une période à venir
=DATEDIF(AUJOURDHUI();"10/05/2014";"d")
sachant que vous pouvez remplacer d par un autre des arguments vus précédemment.
Bonjour,
Je cherche une formule pour calculer les nombres de jours d’une année commerciale suisse, c’est-à-dire avec une référence de 360 jours par an (12X30). Je suis des cours de compta et c’est au programme.
Merci pour votre solution si vous en avez une.
Bonjour,
Il s’agit de
JOURS360
.Merci, c’est très utile, surtout que cette fonction « =datedif » ne figure pas sur le registre d’Excel ! Elle est bien cachée.
Encore une fois merci et bonne continuation.
Bonjour Lydia,
« DATEDIF » fonctionne très bien dans Excel 2007, cependant, je n’y arrive pas du tout avec Excel 2016, alors comment peut-on avoir la même fonction ? Est-ce que la syntaxe a changé ?
Je précise que je suis toujours sur Windows 7.
Merci beaucoup.
Jean-Pierre
Bonjour Jean-Pierre,
DATEDIF n’était déjà plus référencée sur l’Excel que j’utilisais lors de ce tutoriel (2010), mais elle fonctionne quand même, vous n’avez juste pas l’aide d’Excel pour l’écriture de la formule.
Bonjour,
Comment je peux adapter cette fonction à deux dates américaines :
End date : 10/14/2015, start date : 11/17/2015
Sachant que les cellules date sont en forme date américaine et la cellule qui contient la formule est en format Number.
Merci d’avance.
Bonjour,
L’avez-vous essayé sur un Excel en anglais, car étant donné que la fonction est la même, je ne vois pas ce qu’il faudrait faire de différent ?
Bonjour Lydia,
Oui, d’ailleurs, j’ai Excel anglais qui utilise la fonction :
Days(End date; Start date)
J’ai aussi essayé la fonction :
datedif(Start date;End date;"D")
, mais ça ne marche toujours pas 🙁Bonjour Jad,
Malheureusement, je ne possède pas la version anglaise donc je ne peux pas tester. Je vous invite à regarder du côté des forums anglophones, il y aura surement une réponse.
Bonjour,
J’ai la suite Office 2013 et j’applique la formule et j’ai toujours l’erreur #valeur!.
Pouvez-vous m’aider ?
Merci !
Bonjour,
Une erreur valeur peut avoir plusieurs raisons : https://support.office.com/fr-fr/article/Corriger-une-erreur-VALEUR-15e1b616-fbf2-4147-9c0b-0a11a20e409e
Bonjour,
La formule avec les dates ne fonctionne pas pour les dates avant 1900. Je souhaiterais calculer l’âge de mes ancêtres à leur décès.
Par exemple : 13/01/1878 et 20/10/1956… Auriez-vous une formule ?
Merci.
Cordialement.
Bonjour,
Il faut passer par du VBA.
Bonjour Lydia,
J’aurais besoin d’une explication sur la formule datedif.
– En A1 : des dates de naissance
– En B1 : aujourd’hui
– En C3 : la formule
=DATEDIF(A1;AUJOURDHUI();"y")
Quand je n’ai pas de date en A1, la formule affiche 116 ans. Pouvez-vous me dire comment ne rien afficher ?
Bonjour Christian,
=SI(ESTVIDE(A1);"";DATEDIF(A1;AUJOURDHUI();"y"))
ou=SI(ESTVIDE(A1);"";DATEDIF(A1;B1;"y"))
puisque la date du jour est déjà dans une cellule.Merci Lydia.
Ça marche.
Cordialement.
Bonjour,
Afin de pouvoir faire quelques stats :
Exemple :
Date début : 10 oct 2016
Date fin : 14 nov 2016
J’aimerais savoir comment procéder pour obtenir le nombre de jours en octobre et le nombre de jours en novembre sachant que certaines dates (début et fin) peuvent se situer dans le même mois.
Merci beaucoup à l’avance.
Bonjour,
J’appliquerais une formule comme ça pour le début du mois :
=JOUR(A1)
et celle-ci pour la fin :=FIN.MOIS(A1;0)-A1
et je combinerais une fonction SI de ce type pour le mois identique :=SI(MOIS(A1)=MOIS(B1);"même mois";"mois différent")
.Bonjour !
J’essaie de calculer le nombre de jours de congés pris via la formule DATEDIF, mais sur une journée seule (ex : début 17/02/17 – Fin 17/02/17), il ne me comptabilise aucun jour ! Pareil si je le fais pour une période plus longue de 9 jours, il ne me comptabilise que 8 jours au lieu de 9 !
Comment faire ?
Par avance, merci pour votre aide !
Anthony
Bonjour Anthony,
Dans ce cas, il suffit d’ajouter
+1
à la suite de la formule.Bonjour,
J’aimerais savoir comment calculer le nombre d’occurrences d’un jour dans un mois.
Par exemple, calculer le nombre de vendredi entre le 01/01/2017 et le 31/01/2017 ?
Pouvez-vous m’aider ?
Bonjour,
Voici la formule :
=SOMMEPROD(1*(JOURSEM(LIGNE(INDIRECT(A1&":"&B1)))=6))
Bonjour,
Je n’arrive pas à calculer l’âge quand la date de naissance est de 1914 par exemple. Il m’affiche 00.
Quelle formule utiliser ?
Merci.
Bonjour,
J’ai essayé avec la formule
=DATEDIF(A1;B1;"y")
et ça fonctionne avec une date de 1914.Bonjour Lydia,
Ce que je voudrais, surtout, c’est avoir le nombre de jours exacts en inscrivant les 2 dates. Exemple : date1 : 06/03/17 ; date2 : 12/03/17 = 7 jours. Comment faire, car, avec la formule proposée, il me manque des jours ?
Merci.
Bonjour Laurent,
Il suffit de rajouter +1 à la fin de la formule comme indiqué à Anthony précédemment.
Bonjour Lydia,
J’utilise la formule DATEDIF pour calculer l’ancienneté entre les dates de début et fin de contrat de mon personnel saisonnier.
Pour aller plus loin, je souhaiterais pouvoir additionner le résultat (1 an, 2 mois, 10 jours) de plusieurs contrats pour une même personne et je n’arrive pas à trouver la bonne formule.
Merci d’avance de votre aide.
Bonjour Valéry,
Il faut additionner les formules et non les résultats :
=DATEDIF(A1;B1;"d")+DATEDIF(A2;B2;"d")+DATEDIF(A3;B3;"d")
Bonjour.
Je souhaiterais établir une formule qui me donnera cette date : 01/01/2017_07/01/2017.
Merci de votre retour.
Bonjour,
=TEXTE(A1;"jj/mm/aaaa") & "_" & TEXTE(A1+6;"jj/mm/aaaa")
Bonjour,
Je recherche à calculer le nombre de « a » (a étant pour moi une vente) entre deux dates sur un tableau de suivi commercial.
Merci.
Bonjour,
S’il n’y a que des A dans les cellules concernées, transformez votre tableau en plage de tableau (si ce n’est pas déjà fait) en étant dans le tableau et en allant dans Insertion > Tableau. Puis, dans la colonne de la date, filtrez la période avec la petite flèche de filtre et, enfin, dans l’onglet Création, cochez Ligne Total et, au bas de la colonne des A, choisissez Nombre : ce qui vous donnera le nombre de A pour la période.
Bonjour,
Je cherche à calculer le nombre de jours entre deux dates, sans tenir compte des jours de la fin de semaine. Est-ce que vous pouvez m’aider ?
Bonjour,
Il s’agit de la formule NB.JOURS.OUVRES.
Bonjour,
Je cherche à calculer le nombre de jours entre deux dates (avec une date de début postérieure à la date de fin).
Bonjour,
Ça reste toujours le même nombre de jours donc il y n’y a rien à changer.
Non, au contraire, avec la formule DATEDIF, j’ai un résultat #nombre! alors que je souhaite avoir un intervalle de jours entre, par exemple, 05/02/2018 et 31/01/2018.
Merci pour l’aide.
Oui, mais il suffit d’inverser votre ordre à vous, d’abord la date la plus ancienne et ensuite la plus récente :
=DATEDIF("31/01/2018";"05/02/2018";"d")
Bonjour,
J‘espère que vous pourrez m’aider…
J’utilise l’étiquette DATEDIF comme ci-dessous :
=DATEDIF($C$1;K17;"Y")&SI(DATEDIF($C$1;K17;"Y")>1;" ans, ";" an, ")&DATEDIF($C$1;K17;"YM") &" mois et "&DATEDIF($C$1;K17;"MD")&SI(DATEDIF($C$1;K17;"MD")>1;" jours";" jour")
$C$1 étant la date d’aujourd’hui (=AUJOURDHUI()) et K17 étant une autre date antérieure ou postérieure à la date d’aujourd’hui (ex : 20/05/2018).
Dans une autre cellule D17, je désire afficher le nombre d’années, de mois et de jours restants.
Ça fonctionne avec la formule ci-dessus, j’ai le nombre d’années, mois et jours restants entre deux dates (ex : 1 an, 3 mois, 22 jours) quand la date en K17 est postérieure à $C$1.
C’est ce que je cherche.
Mais, il y a un « mais » quand la date en K17 est antérieure à $C$1 (dépassée), j’ai une erreur (#NOMBRE!).
Alors que quand K17 est postérieur ça marche, j’ai le nombre d’années, mois et jours restants. Donc ça, c’est mon premier souci.
Et mon deuxième souci, avec cette même formule comme ci-dessus, j’aimerais avoir un texte qui s’affiche comme « dépassé » quand la date en K17 est antérieure à $C$1 qui est la date d’aujourd’hui.
J’ai rajouté la formule suivante en bout de la formule ci-dessus :
&SI(ET(K17;" ans, ";" an, ")&DATEDIF($C$1;K17;"YM") &" mois et "&DATEDIF($C$1;K17;"MD")&SI(DATEDIF($C$1;K17;"MD")>1;" jours";" jour")&SI(ET(K17<AUJOURDHUI());"Dépassé";"")
Mais ça ne marche pas. Je ne sais pas pourquoi.
Surtout que lorsque j’écris simplement la formule suivante avec une date K17 postérieure à $C$1
=SI(ET(K17<AUJOURDHUI());"Dépassé";"")
, ça fonctionne.Merci d’avance à celui qui voudra bien m’aider.
Edit : J’ai rajouté la formule suivante en bout de la formule ci-dessus :
&SI(ET(K171;" ans, ";" an, ")&DATEDIF($C$1;K17;"YM") &" mois et "&DATEDIF($C$1;K17;"MD")&SI(DATEDIF($C$1;K17;"MD")>1;" jours";" jour")&SI(ET(K17<AUJOURDHUI());"Dépassé";"")
Edit :
=DATEDIF($C$1;K17;"Y")&SI(DATEDIF($C$1;K17;"Y")>1;" ans, ";" an, ")&DATEDIF($C$1;K17;"YM") &" mois et "&DATEDIF($C$1;K17;"MD")&SI(DATEDIF($C$1;K17;"MD")>1;" jours";" jour")")&SI(ET(K17<AUJOURDHUI());"Dépassé"
;"")
Bonjour Didier,
=SI(AUJOURDHUI()< =K17;DATEDIF($C$1;K17;"Y") & SI(DATEDIF($C$1;K17;"Y")>1;" ans, ";" an, ") & DATEDIF($C$1;K17;"YM") &" mois et "& DATEDIF($C$1;K17;"MD") & SI(DATEDIF($C$1;K17;"MD")>1;" jours";" jour");"Dépassé")
Merci.
Super, ça marche.
Enfin, Excel a effectué quelques modifications dans la formule.
Il a enlevé le deuxième « égal » et il a enlevé certains espaces.
Mon fichier Excel :
=SI(AUJOURDHUI()1;" ans, ";" an, ")&DATEDIF($C$1;K17;"YM")&" mois et "&DATEDIF($C$1;K17;"MD")&SI(DATEDIF($C$1;K17;"MD")>1;" jours";" jour");"Dépassé")
Donc ça fonctionne.
Je vous remercie encore.
Vous avez résolu mon problème.
Bonne soirée.
Didier
Étrange, car j’ai créé cette formule sur un fichier Excel vierge et l’ai validée pour copier-coller la formule ici, mais le principal est que cela fonctionne.
Bonne soirée.
Je ne sais pas pourquoi, je n’arrive pas à restituer ce que je vois à l’écran.
Je réessaie :
=SI(AUJOURDHUI()1;" ans, ";" an, ")&DATEDIF($C$1;K17;"YM") &" mois et "& DATEDIF($C$1;K17;"MD")&SI(DATEDIF($C$1;K17;"MD")>1;" jours";" jour");"Dépassé")
Quand il y a des formules ou du code, je le mets en format code sinon des caractères se transforment.
Ok pour le format code.
Merci.
Je vous ai dit ok pour format code, mais, en fait, comment faut-il faire ?
Il faut entourer les formules des balises Code.
<
code>
(la formule) + même chose que précédemment, mais avec un slash avant le mot code pour refermer la balise.Encore merci.
Bonne soirée.
Bonsoir,
Votre aide sera la bienvenue s’il vous plaît, j’ai le problème suivant : je dois calculer le nombre de jours entre 2 dates (2 colonnes O2 et P2) avec 4 conditions.
Condition 1/ La première est la date fin P2 >= date début O2 (les dates sont saisies manuellement donc risque d’erreur)
Condition 2/ Si O2 > P2, alors « Erreur saisie date O2 »
Condition 3/ Si O2 vide et P2 non vide, alors doit s’afficher message « Erreur date O2 non renseignée »
Condition 4/ Si O2 et P2 vides, alors résultat vide (et non 0).
Avec tous mes remerciements.
Bonjour,
Lorsque vous avez des difficultés avec les formules imbriquées, je vous conseille de les séparer.
C’est-à-dire que dans une première cellule, vous créez la formule SI pour la première condition avec « non » par exemple si faux. Puis, dans une deuxième cellule, vous créez la deuxième formule pour la deuxième condition et ainsi de suite. Lorsque vous avez vos 4 formules, vous prenez le contenu de la deuxième cellule sauf le = et vous remplacez le « non » de la première cellule avec le contenu copié et ainsi de suite.
Cette méthode évite les erreurs et surtout de s’embrouiller avec les parenthèses ou points-virgules.
Bonjour !
Je m’appelle Ablam. Je suis de la nationalité togolaise et j’habite actuellement au pays. Je dirige actuellement un projet de garderie d’enfants. J’ai quelques fois des soucis en Excel. J’aurais besoin de vos soutiens. Si vous pouviez m’aider avec un document plus pratique en Excel, je serais très fier.
Cordialement,
Ablam
Bonjour,
Pour une demande d’aide personnalisée, je vous invite à passer par une demande de devis.
Bonjour,
Je me permets de vous contacter, car j’ai un souci sur Excel. Je travaille dans un hôpital et suis amenée à calculer l’ancienneté des salariés, puis à les positionner sur une grille selon leur ancienneté. Ici, nous devons prendre en compte une année de 360 jours et 1 mois de 30 jours. Ma collègue, qui fait son calcul à la main, trouve toujours la bonne date, contrairement à moi qui travaille sur Excel. J’utilise la fonction JOURS360, mais cela ne fonctionne pas.
Exemple : Embauche au 01/04/2019. Calculer l’ancienneté d’un salarié du 01/01/2017 au 31/03/2019 inclus. Avec la fonction JOURS360, je trouve 809 jours et une date d’ancienneté au 12/01/2017. Ma collègue trouve une date d’ancienneté au 22/12/2016 et ma responsable est d’accord avec ma collègue. Pourriez-vous me dire ce que vous trouvez s’il vous plaît ? Merci par avance pour votre aide qui me sera précieuse pour mes futures reprises d’ancienneté. Bien cordialement,
Naï
Bonjour,
Je ne comprends pas votre exemple : comment une personne embauchée en 2019 peut avoir une ancienneté en 2017 ? Quelles sont les dates de début et de fin pour lesquelles vous souhaitez compter le nombre de jours ?
Bonjour,
Je voudrais savoir la formule pour calculer le nombre de jours de la date initiale jusqu’aujourd’hui, SVP. Je ne peux pas aller avec DATEDIF à cause que la date de fin n’y est pas encore.
Exemple : j’ai un dossier daté de 2017 et ce n’est pas fini, je voudrais programmer pour savoir combien de jours ont passé de cette date jusqu’aujourd’hui.
J’ai essayé vos astuces, mais en vain.
Merci de votre aide.
Bonjour,
Il faut mettre
AUJOURDHUI()
à la place de la date de fin.Bonjour Lydia,
Merci pour l’astuce et j’ai réussi à avoir le nombre de jours à partir de la date de départ jusqu’aujourd’hui 🙂 (avec aujourdhui() à la fin) . Mais comment puis-je le programmer pour que ça reste et calcule les jours qui suivent ?
Un gros merci encore.
Bonjour Éric,
AUJOURDUI
renvoie toujours la date du jour : Extraire l’année, le mois et le jour d’une date sur ExcelBonjour, j’utilise Excel 2016, je souhaite mettre la formule
DATEDIF(B4;AUJOURDHUI();d)
, mais j’obtiens #NOM?, je ne vois pas comment faire.PS : B4 est une date
J’ai essayé de rentrer la formule AUJOURDHUI dans une cellule pour pouvoir faire
DATEDIF(B4;B5;d)
, mais le résultat reste le même.Et j’ai besoin de laisser la date de début dans la cellule B4.
Existe-t-il une solution ?
EDIT : Je viens de voir une réponse dans les commentaires plus haut !
Problème réglé, merci !
Bonjour,
J’espère que vous pouvez m’aider.
Sur un tableau Excel, je mets sur la colonne N les dates des ventes. Sur la colonne L, je mets les identifiants des clients.
Ce que je veux c’est avoir la fréquence d’achat pour chaque client.
Autrement dit, je veux savoir la moyenne des jours entre un achat et un autre pour le même client
PS : sur la colonne N, il peut y avoir plusieurs dates et non seulement 2.
PS 2 : sur la colonne L, il y a plusieurs clients, pas un seul.
Merci beaucoup.
Bonjour,
Pourriez-vous poster le lien d’une capture de votre tableau (avec des données anonymes), car je ne vois pas trop comment il se présente si la formule Datedif ne suffit pas ?