Résumé
Pour calculer la différence entre deux dates en nombre de mois, il faut utiliser la fonction DATEDIF. Dans l’exemple présenté, la formule en E3 est :
= DATEDIF( B3 ; C3 ; "M" )
Cette formule permet de déterminer le nombre de mois complets entre deux dates.
Formule Excel – Nombre de mois entre deux dates
= DATEDIF( date_début ; date_fin ; "M" )
Explications
Dans notre exemple, l’objectif est de calculer le nombre de mois entre deux dates. Pour cela, nous avons la date de début et la date de fin dans des colonnes séparées. Nous voulons obtenir le nombre de mois entiers entre ces deux dates.
Il nous sera aussi possible de calculer la portion réalisée du dernier mois.
= DATEDIF( B3 ; C3 ; "M" )
--> Résultat: 19
Fonction DATEDIF
La fonction DATEDIF n’est pas une fonction native d’Excel. De fait, ne la cherchez pas dans la liste des fonctions dans votre ruban. Elle n’apparaîtra pas. Lorsque vous saisirez la formule, les arguments de la fonction ne vous seront pas proposés. N’en soyez pas surpris. Voici sa syntaxe :
=DATEDIF( date_début ; date_fin ; unité )
Les arguments de la fonction sont :
date_début
– il s’agit de la date de début à partir de laquelle nous voulons compter le nombre d’unités (années, mois ou jours).date_fin
– il s’agit de la date de fin.unité
– unité de temps dans laquelle nous voulons exprimer la différence entre la date de début et la date de fin. Elle peut s’exprimer en années, mois ou jours.
Le 3e argument est le plus important. Il permet de faire comprendre à Excel quel type de calcul vous souhaitez effectuer. Le tableau suivant reprend les différents calculs disponibles.
Unité | Explication |
---|---|
Y | Compte le nombre d'années complètes |
M | Compte le nombre de mois complets |
D | Compte le nombre de jours complets |
MD | Compte le nombre de jours passés depuis le dernier mois révolu |
YM | Compte le nombre de mois depuis la dernière année révolue |
YD | Compte le nombre de jours depuis la dernière année révolue |
En utilisant les différents paramètres avec notre exemple, nous obtenons les résultats suivants :
= DATEDIF( B3 ; C3 ; "Y" )
--> Résultat: 1 (année complète)
= DATEDIF( B3 ; C3 ; "M" )
--> Résultat: 19 (mois complets)
= DATEDIF( B3 ; C3 ; "D" )
--> Résultat: 595 (jours complets)
= DATEDIF( B3 ; C3 ; "MD" )
--> Résultat: 15 (jours depuis la fin du dernier mois complet)
= DATEDIF( B3 ; C3 ; "YM" )
--> Résultat: 7 (mois complets depuis la fin de la dernière année complète)
= DATEDIF( B3 ; C3 ; "YD" )
--> Résultat: 229 (jours depuis la fin de la dernière année complète)
Dans notre exemple, nous voulons calculer le nombre de mois entre deux dates, il faut utiliser l’unité « M » :
= DATEDIF( B3 ; C3 ; "M" )
--> Résultat: 19 (mois complets)
Ajouter la portion du dernier mois
Si vous souhaitez calculer la portion du dernier mois, il faut réaliser une formule de la forme suivante :
= nb de jours consommés sur dernier mois /
nb de jours totaux sur dernier mois
Pour calculer le nombre de jours entre le début du dernier mois et la date de fin, on va se servir à nouveau de la fonction DATEDIF.
= DATEDIF( B3 ; C3 ; "MD" )
--> Résultat: 15 (jours depuis la fin du dernier mois complet)
Pour calculer le nombre de jours dans le dernier mois, il faut calculer la date de début et de fin du dernier mois (ici 24/12/2024 et 24/01/2025).
Pour cela, nous allons nous servir de la fonction MOIS.DECALER. Elle permet de calculer une date dans le futur ou dans le passé en fonction du nombre de mois à décaler.
A des fins de lisibilité, j’afficherai dans un premier temps le résultat de notre première fonction DATEDIF (19 mois).
= MOIS.DECALER( date_début ; nb_mois + 1 ) + MOIS.DECALER( date_début ; nb_mois )
= MOIS.DECALER( B3 ; 20 ) - MOIS.DECALER( B3 ; 19 )
--> Résultat: 31
Excel indique qu'il y a 31 jours entre le 24/12/2024 et le 24/01/2025
On peut à présent combiner les formules :
= DATEDIF( B3 ; C3 ; "MD" ) /
( MOIS.DECALER( B3 ; 20 ) - MOIS.DECALER( B3 ; 19 ) )
--> Résultat: 0,48
Il nous reste à ajouter à ce résultat le nombre de mois que l’on avait calculés. Voici la formule complète :
= DATEDIF( B3 ; C3 ; "M" ) +
( DATEDIF( B3 ; C3 ; "MD" ) /
( MOIS.DECALER( B3 ; DATEDIF( B3 ; C3 ; "M" ) +1 )
- MOIS.DECALER( B3 ; DATEDIF( B3 ; C3 ; "M" ) )
)
)
--> Résultat: 19,48
Formules en lien
- Nombre de jours entre deux dates
- Nombre de trimestres entre deux dates
- Nombre d’années entre deux dates
- Calculer l’âge avec la date de naissance
- Calculer l’ancienneté
- Calculer le nombre de jours ouvrés entre deux dates
- Somme par mois
- Convertir des minutes en heures
- Convertir date en texte
- Ajouter 1 jour à une date
- Ajouter des trimestres à une date
- Récupérer le numéro de la semaine
- Extraire mois d’une date
- Récupérer le mois en lettres d’une date
- Convertir des heures en centièmes