Trouver la première date du dimanche, lundi, etc. dans un mois avec Google Sheets

Lorsque vous utilisez Google Sheets, il peut être parfois nécessaire d’identifier la première occurrence d’un jour de la semaine spécifique (dimanche, lundi, mardi, mercredi, jeudi, vendredi ou samedi) dans un mois donné.

Cependant, trouver la formule adéquate pour un jour de la semaine différent peut être un défi. Dans cet article, je vais vous présenter une formule dynamique qui vous permettra de désigner les jours de la semaine à l’aide des numéros de semaine (1 à 7, où 1 correspond au dimanche et 7 correspond au samedi). Cela vous permettra de localiser facilement la première occurrence du jour de la semaine souhaité.

Trouver le premier dimanche d’un mois donné dans Google Sheets

Vous avez la possibilité d’utiliser différentes entrées : un nom de mois, un numéro de mois ou la date de début du mois. La formule s’adapte en conséquence. Je vous recommande d’utiliser la date de début du mois, en indiquant à la fois le mois et l’année. Commençons par cela, et je vous guiderai ensuite pour les ajustements liés au nom ou au numéro du mois.

Par exemple, pour trouver la première date du dimanche en janvier 2023 :

  1. Entrez 01/01/2023 dans la cellule A1.
  2. Pour trouver le premier dimanche de janvier, entrez la formule suivante dans la cellule A2 :
=TO_DATE(FILTER(SEQUENCE(7, 1, A1), WEEKDAY(SEQUENCE(7, 1, A1))=1))

Pour localiser le premier dimanche du mois en cours, remplacez A1 par EOMONTH(TODAY(), -1) + 1. Dans ce contexte, la fonction EOMONTH convertit la date d’aujourd’hui en date de fin de mois du mois précédent. +1 correspond à la date de début du mois en cours.

Note :

Dans la formule ci-dessus, nous pouvons éviter les calculs répétés en utilisant LET, ce qui permet de l’améliorer. Voici la version optimisée :

=LET(d, SEQUENCE(7, 1, A1), TO_DATE(FILTER(d, WEEKDAY(d)=1)))

Anatomie de la formule

La formule précédente utilise essentiellement une formule FILTER. Voici une explication de son fonctionnement.

Syntaxe :

FILTER(plage, condition1, [condition2, ...])

Où :

  1. plage : FILTER(SEQUENCE(7, 1, A1))
  2. condition1 : WEEKDAY(SEQUENCE(7, 1, A1))=1

La fonction SEQUENCE génère une séquence de 7 dates, à partir de la date donnée dans la cellule A1, qui représente le début du mois.

La fonction FILTER filtre ensuite cette séquence, en sélectionnant uniquement la date où le numéro de semaine est égal à 1 (dimanche).

Le résultat est une valeur de date, et la fonction TO_DATE est appliquée pour la formater en une date valide.

Comment trouver les premières dates du lundi, mardi et des autres jours de la semaine dans Google Sheets

Vous disposez maintenant d’une formule flexible pour trouver facilement la première date du dimanche, du lundi, etc. dans un mois donné dans Google Sheets.

Pour trouver le premier lundi, remplacez simplement le critère de filtrage ‘1’ par ‘2’ dans la formule :

=LET(d, SEQUENCE(7, 1, A1), TO_DATE(FILTER(d, WEEKDAY(d)=2)))

Voici les numéros de semaine que vous pouvez utiliser pour trouver le premier jour de la semaine de votre choix :

Jour de la semaine Numéro de semaine
Dimanche 1
Lundi 2
Mardi 3
Mercredi 4
Jeudi 5
Vendredi 6
Samedi 7

Par exemple, pour obtenir le premier jeudi de janvier 2024, suivez ces étapes :

  1. Entrez 01/01/2024 dans la cellule A1.
  2. Dans la cellule A2, entrez la formule suivante :
=LET(d, SEQUENCE(7, 1, A1), TO_DATE(FILTER(d, WEEKDAY(d)=5)))

Ici, j’ai utilisé le numéro de semaine ‘5’ comme critère.

Utilisation du texte du mois ou du numéro du mois au lieu de la date dans la formule

Dans nos exemples, nous avons utilisé les dates de début de mois.

Par exemple, pour trouver le premier jeudi de février 2023, au lieu d’entrer 01/02/2023, vous pouvez entrer soit 2, soit ‘février’ dans la cellule A1.

  • Si vous entrez 2 (le numéro du mois), remplacez A1 dans la formule par DATE(2023, A1, 1).
  • Si vous entrez ‘février’ (le texte du mois), remplacez A1 dans la formule par DATE(2023, MONTH(A1&1), 1).

Trouver la première date du dimanche, du lundi, etc. de chaque mois

Dans tous les exemples ci-dessus, nous avons utilisé la formule pour trouver la première date du dimanche, du lundi, du mardi, etc. d’un mois spécifique. Mais qu’en est-il de chaque mois d’une année ?

Cela est un peu plus complexe. Nous allons utiliser deux fonctions supplémentaires : EDATE et MAP Lambda.

Voyons comment obtenir la première date du jeudi de chaque mois en 2023.

=ArrayFormula(MAP(EDATE(A1, SEQUENCE(12, 1, 0)), LAMBDA(dt, TO_DATE(FILTER(SEQUENCE(7, 1, dt), WEEKDAY(SEQUENCE(7, 1, dt))=5)))))

Anatomie de la formule

Voici les étapes à suivre :

  1. Entrez la date 01/01/2023, soit la date de début de l’année, dans la cellule A1.
  2. Entrez la formule suivante pour obtenir le premier jeudi de 2023 en janvier dans la cellule C1 :
=TO_DATE(FILTER(SEQUENCE(7, 1, A1), WEEKDAY(SEQUENCE(7, 1, A1))=5))

Maintenant, utilisons MAP avec cette formule :

=MAP(A1, LAMBDA(dt, TO_DATE(FILTER(SEQUENCE(7, 1, dt), WEEKDAY(SEQUENCE(7, 1, dt))=5))))

Syntaxe de la fonction MAP :

MAP(array1, [array2, ...], lambda)

Où :

  • array1 : A1
  • lambda : Le LAMBDA est conforme à la syntaxe LAMBDA([nom, …], formule_expression). Où nom est dt, et formule_expression est TO_DATE(FILTER(SEQUENCE(7, 1, dt), WEEKDAY(SEQUENCE(7, 1, dt))=5)).

Le but de la fonction MAP est de renvoyer un nouvel ensemble de valeurs formé en associant chaque valeur des ensembles donnés à une nouvelle valeur, obtenue en appliquant un lambda.

Dans l’exemple ci-dessus, nous avons une seule valeur, pas un ensemble, qui est A1.

Pour lui fournir un ensemble qui contient les dates de début de mois pour tous les mois de 2023, c’est-à-dire les dates 01/01/2023, 01/02/2023, 01/03/2023, etc., nous pouvons utiliser la formule EDATE suivante pour générer ces dates :

ArrayFormula(EDATE(A1, SEQUENCE(12, 1, 0)))

Remplacez donc A1 dans la formule MAP par cette formule EDATE (vous pouvez déplacer ArrayFormula au début) :

=ArrayFormula(MAP(EDATE(A1, SEQUENCE(12, 1, 0)), LAMBDA(dt, TO_DATE(FILTER(SEQUENCE(7, 1, dt), WEEKDAY(SEQUENCE(7, 1, dt))=5)))))

Pour obtenir la première date du dimanche de chaque mois en 2023, remplacez le critère de filtrage ‘5’ par ‘1’ comme précédemment.

C’est tout pour le moment. Merci d’être resté(e). Profitez-en bien !

Articles en lien