Comment calculer une différence entre deux dates avec la formule DATEDIF (années, mois ou jours) sur EXCEL
Dans ce nouveau chapitre de notre série de cours dédié à l’utilisation des dates et des heures dans Excel, comment calculer simplement la durée d’une période s’écoulant entre deux dates. Nous verrons comment exprimer cette durée au choix en jours, en mois ou même en années.
Téléchargement
Pour suivre ce tutoriel dans les meilleures conditions, vous pouvez télécharger le support de ce cours cliquant sur le lien suivant :
Tutoriel Vidéo
Si la vidéo vous plaît, vous pouvez vous abonner à la chaîne Youtube pour ne manquer aucune astuce et devenir rapidement un pro d’EXCEL.
1. Présentation
Au cours des chapitres précédents, nous avons déjà eu l’occasion de voir que pour calculer un intervalle courant entre deux dates, il suffit d’effectuer une simple soustraction.
=C7-B7
En effet, il suffit de changer le format des cellules contenant des dates pour se rendre compte qu’il s’agit en réalité de simples nombres entier (ou décimaux lorsque les heures sont également exprimées) :
En revanche, si l’on souhaite exprimer cet intervalle dans une autre unité que la simple journée, alors la soustraction ne suffira pas !
En effet, si nous souhaitons par exemple connaître le nombre de mois, le résultat dépendra alors de la durée des mois analysés ! (30 jours ? 31 jours ? 28 jours ?)
Et c’est justement pour cela qu’existe la formule DATEDIF() que nous allons étudier dans le détail dans ce tutoriel.
2. La Formule DATEDIF()
L’une des grandes particularités de la formule DATEDIF(), c’est que celle-ci n’est pas référencée par Microsoft !
En effet, lorsque nous tapons celle-ci dans la barre des formules, Excel ne propose pas de saisie prédictif :
Ni même d’aide à sa saisie au sein de l’assistant de saisie des formules :
Il est donc nécessaire de la connaître et de savoir comment l’utiliser.
Celle-ci demande trois arguments :
=DATEDIF(dateDépart;dateFin;unité)
Où :
- dateDépart est la date à partir de laquelle nous souhaitons que l’intervalle débute,
- dateFin marque la fin de cet intervalle
- unité est l’unité sous laquelle nous souhaitons que l’intervalle soit exprimé, il s’agit d’une chaîne de caractère, à saisir entre guillemets
Évidemment, et comme nous l’avons déjà abordé, une date ne peut pas être négative, dateDépart doit donc absolument être antérieure à dateFin.
Ensuite, l’unité correspond aux éléments suivants (en anglais, la formule DATEDIF() n’ayant pas été traduite) :
Unité | Signification en anglais | Résultat obtenu |
Y | Years | Nombre d'années complète dans la période |
M | Month | Nombre de mois complets dans la période |
D | Day | Nombre de jours complets dans la période |
MD | Day, ignore Month and Year | Nombre de jours, en considérant que les mois et les années sont identiques |
YM | Month ignore Year | Nombre de jours, en considérant que les années sont identiques |
YD | Days ignore Years | Nombre de jours, en considérant que les années sont identiques |
Pour les trois dernières unités, nous pouvons retenir que la première lettre correspond à ce qui est ignoré, et la seconde au résultat calculé.
Attention, comme précisé dans ce tableau, Excel calcul des périodes complètes ! Aussi, si l’on cherche à connaître l’intervalle courant entre une journée et son lendemain, le résultat retournée est égal à 1. Il faut en effet omettre le jour de départ dans le calcul (ou le mois ou l’année)
2. Quelques exemples
2.1. Calculer un intervalle en jours
Pour calculer un intervalle exprimé en jours, nous utilisons simplement l’unité « D » :
=DATEDIF($B$7;$C$7;"D")
Évidemment, ce résultat est identique à celui que nous avons déjà obtenu en effectuant une simple soustraction.
2.2. Calculer un intervalle en mois
Pour calculer un intervalle exprimé en mois, nous utilisons cette fois-ci l’unité « M » :
=DATEDIF($B$7;$C$7;"M")
2.3. Calculer un intervalle en années
Enfin, pour calculer un intervalle exprimé en années, nous utilisons l’unité « Y » :
=DATEDIF($B$7;$C$7;"Y")
Cette formule est particulièrement pratique lorsque nous souhaitons calculer des âges de personnes.
2.4. Calculer un intervalle en jours, en ignorant l’année
Enfin, pour calculer un intervalle exprimé en jours, sans tenir compte des mois et des années des deux dates, nous utilisons l’unité « YD » :
=DATEDIF($B$7;$C$7;"YD")
3. Problèmes connus
Si la formule DATEDIF() n’est plus référencée par Excel c’est parce que celle-ci est impactée par un certains nombre de bugs qui ont pour effet de retourner des résultats incorrects !
Il est donc nécessaire de bien les connaître pour ne pas tomber dans leurs pièges et utiliser la formule comme il se doit.
Tout d’abord, sachez que le résultat retourné sera erroné si le jour de la date de départ est supérieur à celui de la date d’arrivée :
Nous aurons également un problème sur le même exemple lorsque nous souhaitons calculer des jours en ignorant les mois :
Cela vient du fait qu’Excel ne peut pas retourner de résultat négatif !