mardi 19 août 2014

[Excel] Une formule pour calculer le nombre de jours dans un mois donné

pictogramme de la rubrique Excel[ Article mis à jour en août 2014 ]
Combien y a-t-il de jours en décembre ? La réponse, c'est bien sûr 31. Mais comment répondre à cette question dans un calcul avec Excel ? Le logiciel ne proposant pas de fonction qui retourne le nombre de jours dans le mois d'une date donnée (pour une date stockée dans une cellule), il faut utiliser une formule.


Formule pour Excel 2003 Excel 2007 Excel 2010 Excel 2013

Comme souvent avec les calculs sur les dates avec Excel, la formule qui convient est assez astucieuse. Le nombre de jours dans un mois donné - l'information que l'on recherche - est le quantième du dernier jour de ce mois : 30 pour avril, 31 pour mai, etc.

Or, le dernier jour d'un mois, c'est aussi la veille du premier jour du mois suivant. Le premier, la veille ? Voilà l'astuce : ces données sont idéales pour un calcul. Pour le premier calcul, on peut utiliser une fonction, car 1 est un argument connu et fixe. Et la veille, c'est exactement "moins un jour" ! D'où la formule :

=JOUR(DATE(ANNEE(cellule);MOIS(cellule)+1 ;1)-1)

cellule est la référence à la cellule, au format date, qui contient la date du mois concerné.

La formule expliquée

Dans cette formule, on passe à la fonction DATE les arguments ANNEE(cellule) (l'année de la date concernée), MOIS(cellule)+1 (le mois qui suit celui de la date concernée) et 1 (le premier jour). Voilà pour "le premier jour du mois suivant".

Ensuite, on passe ce résultat moins 1 (la veille) à la fonction JOUR. Et voilà "la veille du premier jour du mois suivant", donc le dernier jour du mois !

Cette formule fonctionne pour toutes les dates gérées par Excel (depuis le 1er janvier 1900 dans le système de date utilisé par défaut par la version Windows d'Excel), et retourne donc une valeur entre 28 et 31.

capture d'écran Excel - formule de calcul du nombre de jours dans un mois

pictogramme astuce  Astuce  
Cette formule peut-être adaptée pour déterminer si l'année d'une date stockée dans une cellule est bissextile : il suffit de vérifier quel est le dernier jour du mois de février (28 ou 29). Dans notre formule, cela revient à passer en argument de la fonction DATE la référence au mois de mars (3). Ce qui donne :

=SI(JOUR(DATE(ANNEE(cellule);3;1)-1)=29;"Année bissextile !";"Année normale")

Articles populaires