COMMENT CALCULER LE NOMBRE DE JOURS D’UN MOIS ET LE NOMBRE DE MERCREDIS SUR EXCEL
Dans ce tutoriel, je vais vous montrer comment calculer simplement le nombre de jours d’un mois donné en utilisant une simple formule Excel.
Téléchargement
Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :
Tutoriel Vidéo
Partie 1 :
Partie 2 :
Partie 3 :
Vous trouverez très régulièrement de nouvelles vidéos sur la chaîne, alors pensez à vous abonner pour ne manquer aucune astuce et devenir rapidement un pro d’Excel (cliquez-ici) !
1. Détermination du dernier jour du mois
Il existe plusieurs méthodes pour calculer le nombre de jours qui composent un mois, et pour ce tutoriel, nous allons étudier la méthode la plus simple.
Pour commencer, nous allons déterminer le dernier jour du mois en question, en utilisant la formule DATE(), que nous avons déjà eu l’occasion d’utiliser un très grand nombre de fois au cours des précédents chapitre de cette formation :
=DATE(_annee;B9+1;1)-1
Dans cet exemple, vous constaterez que la cellule contenant l’année en cours d’étude porte le nom de _annee, ce qui va nous offrir la possibilité de pouvoir l’appeler très simplement en saisissant ce nom, et sans avoir à nous occuper d’utiliser de référence absolue !
Ensuite, comme vous pouvez le constater, l’astuce pour obtenir le dernier jour d’un mois étudié, et dont le numéro du mois se trouve dans la cellule située juste à gauche (cellule B9 donc) consiste à récupérer le premier jour du mois suivant, auquel il suffit de soustraire une journée :
Cela permet donc d’obtenir la date qui correspond au dernier jour du mois :
2. Détermination du nombre de jours
Ensuite, pour déterminer le nombre de jours contenus dans un mois, il ne reste plus qu’à imbriquer la date obtenue dans la partie précédente au sein de la fonction JOUR() qui permet de récupérer le jour d’une date saisie en argument :
=JOUR(DATE(_annee;B9+1;1)-1)
Bien évidemment, étant donné que nous avions inséré une date dans cette cellule, Excel a appliqué pour nous une mise-en-forme adaptée :
Pour obtenir un résultat correct, il convient de modifier cette mise en forme, en utilisant par exemple le format prédéfini Standard (depuis le menu Accueil du ruban) :
Ensuite, nous pouvons étendre cette formule à l’ensemble des mois du tableau en double-cliquant sur la poignée de recopie, située en bas à droite de la cellule :
Ce qui donne le résultat suivant :
Et pour finir, il suffit de modifier la valeur de la cellule _annee afin de modifier l’année de référence des calculs :
La seule différente intervient évidemment sur le mois de février qui passe alors à 29 jours sur l’année 2020.
3. Compter le nombre de mercredis dans un mois (ou tout autre jour de la semaine)
À présent que nous savons comment calculer le nombre de jours total d’un mois donné, voyons comment calculer le nombre de mercredis que nous allons retrouver durant ce même mois.
Evidemment, le calcul que nous allons mettre en place permettra également de pouvoir calculer le nombre fois que n’importe quel jour de la semaine se répète.
Pour parvenir à nos fin, nous allons utiliser et détourner de son usage classique la fonction NB.JOURS.OUVRES.INTL().
Cette fonction, présente depuis la version 2010 d’Excel permet d’obtenir le nombre de jours ouvrés compris entre deux dates.
La particularité de cette fonction qui permet de la différencier de sa version simplifiée NB.JOURS.OUVRES(), c’est que nous allons pouvoir spécifier des jours de fermetures (correspondant aux week-ends) personnalisés.
L’astuce consiste donc à faire comme si une semaine type n’était composée que de jours de week-ends, en dehors de la journée de la semaine que nous souhaitons dénombrer.
=NB.JOURS.OUVRES.INTL(DATE(_annee;B9;1);DATE(_annee;B9;C9);"1101111")
Ici, les deux premiers argument ne posent aucun problème, il s’agit simplement de reconstituer les dates de début et de fin de chaque mois, pour cela nous utilisons encore une fois la fonction DATE().
Le troisième argument quant à lui permet de spécifier les jours d’ouverture et fermeture qu’Excel doit utiliser pour déterminer le nombre de jours ouvrés.
Il s’agit d’une chaîne de caractères (donc saisie entre guillemets) composée de 0 et de 1 :
- Un « 1 » correspond à un jour de week-end, c’est-à-dire de fermeture et sera donc exclu du calcul du nombre de jours ouvrés,
- Un « 0 » correspond à un jour hors week-end, c’est-à-dire d’ouverture et sera donc inclus dans le calcul du nombre de jours ouvrés
Aussi, pour calculer le nombre de jours correspondant, la chaîne sera :
Jour |
Formule |
Lundi |
0111111 |
Mardi |
1011111 |
Mercredi |
1101111 |
Jeudi |
1110111 |
Vendredi |
1111011 |
Samedi |
1111101 |
Dimanche |
1111110 |
4. Calculer le nombre de jours ouvrés entre deux dates sur Excel (week-ends et des jours fériés)
Avant de découvrir comment calculer le nombre de jours ouvrés entre deux dates sur Excel (en tenant compte des week-ends appliqués par l’entreprise et des jours fériés) revenons rapidement sur la formule NB.JOURS.OUVRES() et sur son évolution NB.JOURS.OUVRES.INTL() que nous avons utilisée dans la partie précédente de ce tutoriel.
4.1. La fonction NB.JOURS.OUVRES()
La fonction NB.JOURS.OUVRES() permet, comme son nom l’indique de déterminer le nombre de jours ouvré entre deux dates données.
La fonction NB.JOURS.OUVRES() va ainsi dénombrer combien de jours de semaine (du lundi au vendredi) sont compris entre les deux dates, les week-ends (samedi et dimanche) sont exclus.
Les arguments attendus par la fonction NB.JOURS.OUVRES() sont les suivants :
- Date_départ : il s’agit de la date à partir de laquelle nous allons vouloir que le décompte des jours ouvrés commence,
- Date_fin : il s’agit de la date du dernier jour, jusqu’auquel nous allons vouloir que le décompte s’arrête,
- Jours_fériés : il s’agit de venir saisir une ou plusieurs dates qui vont représenter les jours fériés, ou plus largement toutes les dates à exclure du calcul du décompte. Nous pouvons soit y inclure une référence vers une plage de cellules contenant ces dates, soit une matrice dans laquelle les dates seront saisis directement. Cet argument est facultatif, lorsqu’il est omis, seules les fins de semaines sont exclues du calcul.
Pour le moment, voyons comment utiliser la fonction de manière simple, en utilisant simplement les deux premiers arguments, nous découvrirons la fonction de la personnalisation des jours à exclure juste après.
La méthode la plus simple consiste à saisir directement les dates en tant qu’arguments (entre guillemets) :
=NB.JOURS.OUVRES("01/01/2021";"31/01/2021")
Mais nous pouvons bien entendu utiliser des références à des cellules contenant lesdites dates :
=NB.JOURS.OUVRES(B25;B26)
Quelques précisions :
- Les dates correspondantes aux Date_départ et Date_fin sont incluses dans le calcul des jours fériés
- Date_départ et Date_fin doivent être des dates Excel valides, sinon la fonction retournera une erreur :
- Il est possible que la Date_fin soit avant la date_Début, dans ce cas-là, le résultat retourné sera un nombre négatif, les règles que nous venons de voir juste avant s’appliqueront également :
Voyons maintenant comment utiliser le troisième argument correspondant aux jours fériés.
Comme nous l’avons vu juste avant, celui-ci pointer directement sur une plage de cellule contenant les dates à exclure.
Ici, nous récupérons simplement un tableau avec les dates correspondantes aux jours fériés de l’année 2021, que nous avons obtenues en suivant le tutoriel « Comment calculer les jours fériés sur Excel »
Ces dates de jours fériés se trouve dans notre exemple aux coordonnées C34 à C44 :
=NB.JOURS.OUVRES(B25;B26;C34:C44)
Pour éviter de devoir utiliser des cellules pour stocker les dates fériées, nous pouvons également saisir une matrice reprenant les dates en tant qu’argument.
Pour cela, chacune des dates est saisie entre guillemets, et la liste complète est elle-même encadrée par des accolades :
=NB.JOURS.OUVRES(B25;B26;{"01/01/2021";"05/04/2021";"01/05/2021";"08/05/2021";"13/05/2021";"24/05/2021";"14/07/2021";"15/08/2021";"01/11/2021";"11/11/2021";"25/12/2021"})
Bien entendu, les méthodes que nous venons de voir doivent permettre d’obtenir un résultat identique.
4.2. La fonction NB.JOURS.OUVRES.INTL()
Maintenant, revenons sur la fonction NB.JOURS.OUVRES.INTL() que nous avons déjà utilisée dans la partie précédente de ce tutoriel.
Comme nous l’avons vu, celle-ci a été introduite avec Excel 2010 et permet de venir compléter la fonction NB.JOURS.OUVRES() en amenant la possibilité de renseigner directement les jours de la semaine que l’entreprise considère comme étant ouvrés, et par différence, ceux qui seront fermés.
Pour cela, la fonction NB.JOURS.OUVRES() offre la possibilité de venir fournir un quatrième argument facultatif : l’argument Week-end.
Cet argument facultatif permet désigner quels jours de la semaine correspond aux week-ends.
Si le Week-end est composé de deux jours, l’argument aura une valeur comprise entre 1 et 7 correspondants à :
Argument Week-end |
Jours de fermeture |
1 |
Samedi, dimanche |
2 |
Dimanche, lundi |
3 |
Lundi, mardi |
4 |
Mardi, mercredi |
5 |
Mercredi, jeudi |
6 |
Jeudi, vendredi |
7 |
Vendredi, samedi |
Si celui-ci n’est composé que d’une journée, celui-ci aura une valeur comprise entre 11 et 17 :
Argument Week-end |
Jours de fermeture |
11 |
Dimanche uniquement |
12 |
Lundi uniquement |
13 |
Mardi uniquement |
14 |
Mercredi uniquement |
15 |
Jeudi uniquement |
16 |
Vendredi uniquement |
17 |
Samedi uniquement |
Dans cet exemple, l’entreprise est fermée le dimanche et le lundi :
=NB.JOURS.OUVRES.INTL(B25;B26;2;C34:C44)
Il est également possible d’utiliser une chaîne constituée de 0 et de 1 pour définir le type de semaine : les 0 correspondent à des jours d’ouverture, et les 1 à des jours de fermeture
Dans cet exemple, l’entreprise est fermée les samedi, dimanche et lundi :
=NB.JOURS.OUVRES.INTL(B25;B26;"1000011";C34:C44)
Attention, dans ce dernier cas, la chaîne utilisée doit contenir exactement sept chiffres correspondants aux sept jours de la semaine, sinon la formule renverra une erreur :
Note : comme nous venons de le voir, l’argument Week-end est facultatif, mais l’omettre revient à utiliser la fonction NB.JOURS.OUVRES(), car dans ce cas-là Excel considèrera par défaut un Week-end intervenant le samedi et le dimanche !