Excel - Date du troisième lundi d'une année

Fermé
Ernest19 Messages postés 46 Date d'inscription dimanche 18 mai 2014 Statut Membre Dernière intervention 2 février 2023 - 29 janv. 2023 à 19:32
Le Pingou Messages postés 12138 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 16 septembre 2024 - 2 févr. 2023 à 18:53

Bonjour,


En partant d'une cellule qui indique une année (2023), quelle est la formule permettant d'obtenir la date du troisième lundi ?


Merci pour vos réponses.

Cordialement.

A voir également:

6 réponses

M-12 Messages postés 1331 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 8 avril 2023 284
29 janv. 2023 à 19:52

Bonsoir,

Avec l'année 2023 en A1

=DATE(A1;1;1)+21-JOURSEM(DATE(A1;1;1)-1;2)
1
Ernest19 Messages postés 46 Date d'inscription dimanche 18 mai 2014 Statut Membre Dernière intervention 2 février 2023 1
1 févr. 2023 à 04:00

Bonjour M-12,

Tout d'abord merci pour votre réponse.

Votre solution fonctionne parfaitement avec l'année 2023 en A1 mais l'objectif est que cela fonctionne avec n'importe quelle année en A1. Or, pour 2024 ça ne fonctionne pas.

Ma question était incomplète et je vous prie de m'en excuser.

Pouvez-vous me proposer une solution qui fonctionnera avec n'importe quelle année ?

Cordialement.

0
M-12 Messages postés 1331 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 8 avril 2023 284
1 févr. 2023 à 08:24

Bonjour,

Chez moi aucun soucis suivant l'année en A1

https://www.cjoint.com/c/MBbhxUIgmoJ

0
Ernest19 Messages postés 46 Date d'inscription dimanche 18 mai 2014 Statut Membre Dernière intervention 2 février 2023 1
2 févr. 2023 à 15:36

Bonjour M-12,

Après seconde vérification, votre formule fonctionne parfaitement et je vous en remercie.


Cependant, je me rend compte que je n'ai pas été assez complet dans la formulation de ma demande. 

En réalité, l'objectif est de faire ressortir les dates de jours fériés mobiles Américains selon l'année. Voici quelques exemples:

- Martin Luther King Day qui est généralement le troisième lundi de janvier mais en 2024 c'est le quatrième lundi compte tenu que l'année commence par un lundi.

- Presidents' Day qui tombe le troisième lundi de février, donc si je change le +21 de votre formule par +56, c'est correct pour 2023 et 2024 mais pour 2025 ca me donne la date du quatrième lundi de février 2025, soit le 24 février 2025.

Voilà ma problématique et je vous remercie par avance si vous pouvez m'apporter une solution.

Cordialement.

0
brucine Messages postés 16691 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 septembre 2024 2 353
2 févr. 2023 à 16:26

Bonjour,

Techniquement, tu n'as pas raison: les "Federal Holidays" ne concernent légalement que les employés... fédéraux, et leur règle d'attribution dépend de s'ils travaillent à Washington D.C., dans un autre état, à l'étranger, et si le jour en question figurait ou pas dans leur horaire de travail.
https://www.commerce.gov/hr/employees/leave/holidays

Sur les 11, 6 sont mobiles, il faudra donc aussi déterminer le dernier lundi de mai (Memorial Day), le 1er lundi de septembre (Labor Day), le 2ème lundi d'octobre (Columbus Day) et le 4ème cette fois-ci jeudi de novembre (Thanksgiving); par ailleurs en passant, le 3ème lundi de novembre n'est pas President's Day mais Washington's Birthday, ce n'est pas tout à fait la même chose).

Tous les jours fixes mobiles s'obtiennent par la syntaxe précisée en <1>, suffisant de préciser le mois qui convient dans DATE(A1;n;1) et le nombre de jours adéquat si on ne veut pas 3 semaines (21).

Quand bien même ces jours mobiles changeraient de lundi selon l'année (ce n'est pas le cas) qu'il suffit de tester par une condition IF le jour de la semaine de DATE(A1;n;1): s'il n'est pas égal à 2 (lundi), on applique la formule précédente, dans le cas contraire, on applique dans le cas illustré la même formule en remplaçant 21 par 28.

J'avais quelque part un batch avec un utilitaire Dos tiers qui calculait systématiquement ces dates quelle que soit l'année, je ne le retrouve plus; c'est du Batch, pas Excel, mais le calcul est pratique, si je le rerouve, je reviens.

0
brucine Messages postés 16691 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 septembre 2024 2 353 > brucine Messages postés 16691 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 septembre 2024
2 févr. 2023 à 16:34

Il y manque Inauguration Day, qui de par la Constitution se tient à partir de 1966 par définition le 20 janvier une fois tous les 4 ans (mais qui est parfois repoussé au lendemain).

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ernest19 Messages postés 46 Date d'inscription dimanche 18 mai 2014 Statut Membre Dernière intervention 2 février 2023 1
2 févr. 2023 à 17:22

Bonjour Brucine,

Tout d'abord, merci pour votre réponse très documentée. Il semble que vous connaissez bien les Etats-Unis et, vous avez effectivement raison, certains jours fériés dépendent de chaque état. Cependant, les jours suivants restent fériés quels que soient les états:

- Martin Luther King Day

- Président's Day

- ThanksGiving Day

Or, la formule qui m'a été communiquée ne fonctionne pas quelle que soit l'année.

Vous semblez indiquer qu'avec un test conditionnel IF et l'application de formules différentes selon le résultat, pourrait solutionner ce problème. Pouvez-vous m'indiquer comment doivent être libellées ces différentes formules ?

Par avance, merci.

Cordialement.

0
brucine Messages postés 16691 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 septembre 2024 2 353
2 févr. 2023 à 18:28

C'est même encore plus compliqué que ça parce que les fonctionnaires fédéraux peuvent bénéficier d'un "Leaving Day" si le jour férié est tombé un vendredi ou un samedi précédent dont ils n'ont pas pu bénéficier parce qu'ils n'y travaillaient pas, mais bon...

La formule en <1> donne le 3ème lundi de janvier (Martin Luther King's Day)

En 2023, le 1er janvier est un dimanche, le troisième lundi le 16. En 2024, le 1er janvier est un lundi, le troisième lundi l'inclut donc, c'est le 15 et ton analyse est inexacte.

Mais si tu veux "sauter" le 1, tu dois écrire:

=SI(JOURSEM(DATE(A1;1;1))<>2;DATE(A1;1;1)+21-JOURSEM(DATE(A1;1;1)-1;2);DATE(A1;1;1)+28-JOURSEM(DATE(A1;1;1)-1;2))

Je n'ai aucun moyen de calculer les autres jours parce que 2023 (par exemple) est une année et pas un mois; si je veux que la cellule A2 m'affiche le prochain jour férié, ça va être d'autant tarabiscoté qu'il y a 2 mois (janvier et novembre) où il y en a 2.

Si je veux appliquer la formule ci-dessus à tous les mois de l'année en calculant à la date où j'ouvre la feuille, j'écris:

=SI(JOURSEM(DATE(A1;MOIS(AUJOURDHUI());1))<>2;DATE(A1;MOIS(AUJOURDHUI());1)+21-JOURSEM(DATE(A1;MOIS(AUJOURDHUI());1)-1;2);DATE(A1;MOIS(AUJOURDHUI());1)+28-JOURSEM(DATE(A1;MOIS(AUJOURDHUI());1)-1;2))

Mais ça reste assez malsain, parce que ça ne calcule que les fêtes qui ont lieu le troisième lundi d'un mois, et pas les double fêtes éventuelles d'un mois.
Il me semble beaucoup plus sain de faire une deuxième feuille qui comporte chacune des formules d'une fête (date-nom) où on pourra à partir du calendrier de la première rechercher si la date de la première est égale à celle de la seconde et afficher le texte en regard, mais il faudrait pour cela que tu fournisses le fichier xlsx donnant la structure de ton calendrier.

0
Le Pingou Messages postés 12138 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 16 septembre 2024 1 446
2 févr. 2023 à 18:53

Bonjour à tous,

Petite contribution : https://cjoint.com/c/MBcrYCtqycZ


0