Calculer les mois et les jours réels entre deux dates dans Google Sheets

Vous pouvez compter les mois et les jours entre deux dates en utilisant les fonctions QUERY ou DATEDIF dans Google Sheets. Choisissez celle qui correspond le mieux à votre objectif.

Utilisation de la fonction DATEDIF pour obtenir les mois entiers entre les dates et le nombre de jours restants

Qu’est-ce qu’un mois entier dans la fonction DATEDIF de Google Sheets ? Comprenez-le avec un exemple :

A2: 10/02/2022
B2: 15/03/2022

Pour calculer les mois entre ces deux dates et les jours restants, utilisez les formules suivantes dans les cellules C2 et D2 :

=datedif(A2,B2,"M")
Résultat = 1
=datedif(A2,B2,"MD")
Résultat = 5

La première formule compte 28 jours à partir du 10/02/2022, soit jusqu’au 10/03/2022. C’est parce que la date de départ tombe en février, qui compte 28 jours. La deuxième formule renvoie les jours restants, soit 5, du 11/02/2022 au 15/02/2022. De cette manière, vous pouvez obtenir les mois entiers entre les dates et les jours restants dans Google Sheets.

DATEDIF pour retourner les mois entre les dates dans Google Sheets

Dans les exemples ci-dessus, les formules données dans les cellules C2 et D2 sont étendues vers le bas. Consultez leurs résultats dans les colonnes C et D pour avoir une idée claire. Maintenant, voyons en quoi la solution basée sur la fonction QUERY diffère de la première.

Utilisation de la fonction QUERY pour retourner les mois et les jours réels entre une date de début et une date de fin

Je vous propose deux formules utilisant la fonction Query.

La première est une formule de base sans mise en forme. Consultez la colonne D dans la capture d’écran ci-dessous :

Formule de base (en D1) :
=ArrayFormula( query( to_date(row(indirect("A"&A2):indirect("A"&B2))), "Select month(Col1)+1,count(Col1) group by month(Col1)" ) )

Je déconseille d’utiliser la formule de base car elle présente un inconvénient majeur. Lequel ? Si vos dates de début et de fin tombent dans deux années différentes, elle ne fonctionnera pas correctement.

La deuxième formule en cellule G1 est plus formatée et ne présente pas cet inconvénient. Elle renvoie des étiquettes de champ appropriées et, contrairement à la formule D1, les mois sont au format texte : janvier, février, etc. Consultez la colonne G dans la capture d’écran ci-dessous :

Formule suggérée (en G1) :
=ArrayFormula( query( EOMONTH(row(indirect("A"&A2):indirect("A"&B2)),0), "Select Col1, Count(Col1) group by Col1 label Col1 'Mois', count(Col1)'Jours dans le mois' format Col1'MMMM-YYYY'" ) )

Comparez les deux résultats pour choisir la formule Query qui vous convient. De cette manière, vous pouvez utiliser Query pour obtenir les mois et les jours réels entre une date de début et une date de fin dans Google Sheets.

Explication de la formule (Query)

Commençons par la formule D1.

Dans Google Sheets, une date est un nombre formaté en date. Vous voulez le vérifier ? Utilisez la fonction DATEVALUE comme suit :

=datevalue(A2)
Résultat : 43158
=datevalue(B2)
Résultat : 43192

Ce sont les valeurs réelles dans les cellules A2 et B2. Maintenant, examinez la formule ROW suivante :

=ArrayFormula(row(43158:43192))

Cette formule renvoie les chiffres (séquentiels) de 43158 à 43192 ligne par ligne. Ce sont en réalité les dates du 27/02/2018 au 02/04/2018.

Vous pouvez utiliser la fonction TO_DATE pour formater les nombres ci-dessus en dates.

=ArrayFormula(TO_DATE(row(43158:43192)))

Étant donné que nous avons les valeurs dans les cellules A2 et B2, j’ai utilisé la fonction Indirect pour les obtenir dans la formule ROW. Sans utiliser Indirect, la formule D1 ressemblerait à ceci :

=ArrayFormula( query( TO_DATE(row(43158:43192)), "Select month(Col1)+1,count(Col1) group by month(Col1)" ) )

Query est utilisé pour regrouper les dates par mois et renvoyer le compte.

Pourquoi ai-je utilisé month(Col1)+1 dans la formule ?

Query renvoie le numéro du mois de 0 à 11 au lieu de 1 à 12. Le +1 résout cette énigme.

Qu’en est-il de la formule G1 ?

J’ai utilisé EOMONTH à la place de TO_DATE par rapport à la formule D1, ainsi que la clause Format en plus.

Ceci est conforme au tutoriel n° 2 dans la section « Ressources » ci-dessous.

J’espère que ces formules vous aideront à trouver les mois et les jours entre deux dates dans Google Sheets.

Merci de nous avoir suivi. Profitez-en !

Articles en lien