XL 2019 Power Query - Déterminer si une date est férié

Flx1er

XLDnaute Occasionnel
Bonjour,
A l'aide de Power Query, est-il possible de déterminer dynamiquement si une date est fériée ou non ?
Je dois savoir si le jour d'un prélèvement, ce jour est férié.

Sur le fichier joint, il y a un onglet "Jour férié".
Sur cet onglet le jour de Pâques et de Pentecôte sont calculés par une formule.
Les autres jours fériés sont la concaténation du jour; mois avec l'année présente en B1.
En changeant l'année de B1, tous les jours fériés sont recalculés

Je désire abonner les formules pour que power query se charge de calculer si les dates de prélèvements sont fériées ou non.

Et là je bloque
En vous remerciant
 

Pièces jointes

  • Période - Copie.xlsx
    30.6 KB · Affichages: 6
Dernière édition:

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,
Hello @chris :)

Sur la base du fichier d'hier voici une proposition. J'ai changé une date de prélèvement dans la source de données pour qu'elle tombe un férié (25/04/2021 "lundi de pâques").
Vous trouverez une fonction powerquery qui calcul les jours feriés d'une année.
Le traitement de votre question d'hier et une simplification du calcul de la période.
Table.AddColumn(#"Type modifié", "Calcul1", each if [Date prélèvement] < #date(2021, 1, 1) then "Aïe erreur"
else if [Date prélèvement] < #date(2021, 3, 17) then "P1" else if [Date prélèvement] < #date(2021, 6, 1) then "P2" else if [Date prélèvement] < #date(2021, 9, 1) then "P3" else "Aïe erreur")

vous verrez également que j'ai changé le type des datetime en date (vous n'utilisez pas les heures, il est donc inutile de conserver le format datetime).

Il serait peut-être bon que vous pensiez à paramétrer ce genre de requête pour pouvoir les utiliser d'année en année.
 

Pièces jointes

  • Période.xlsx
    38.7 KB · Affichages: 10

Flx1er

XLDnaute Occasionnel
Bonjour Hasco,
Merci pour la simplification des formules.
Concernant la fonction "fnListeFeriésAnnée", ne serait-il pas possible de sélectionner uniquement l'année de la date du premier prélèvement (à savoir la donnée présente en A2) au lieu de prendre l'année de la date actuelle.
Sans quoi, la fonction correspond à mon besoin. Ne reste plus qu'à l'intégrer dans mon fichier de travail.
Bonne journée et encore merci.
 
Dernière édition:
Bonjour Fix1er, chris, hasco, le forum

Ma foi, je ne connais pas trop Powerquery, mais si le vba ne vous rebute pas et que vous avez la possibilité de l'utiliser, cette fonction est capable, d'après une date, de déterminer si la journée est fériée pour la France, la Suisse, la Belgique et le Luxembourg, avec la gestion des spécificités régionales, ce qui vous éviterait d'avoir à modifier vos requêtes.
https://www.excel-downloads.com/threads/automatisme-des-jours-feries.20056501/

Bien cordialement, @+
 

chris

XLDnaute Barbatruc
Bonjour à tous
je ne connais pas trop Powerquery, mais si le vba ne vous rebute pas
Ce qui a été fourni ce sont justement des fonctions PowerQuery qu'il suffit d'appliquer aux dates présentes dans la requête

Quand on utilise une fonction, il faut juste l'appliquer à la bonne date...

Retraiter un résultat PowerQuery par VBA alors que la demande était de n'utiliser qu'une technologie pour tout traiter ne me semble pas répondre.
 
Dernière édition:

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour à chacun, chacune de vous,

Dans le fichier joint, j'ai intégré la liste des fériés en haut de requête (La deuxième requête), après l'étape #"Type modifié" en retenant l'année du premier prélèvement de la table comme demandé.

J'avais construit cette méthode pour gagner du temps sur une grande table que j'avais à traiter, pour ne pas avoir à faire recalculer les jours fériés à chaque ligne sur plus de dix ans.
Sur une table de la dimension de la votre, vous ne verrez pas la différence.

Vous avez ainsi l'embarras du choix :) et tous sont bons.

Cordialement
 

Pièces jointes

  • Période.xlsx
    38.4 KB · Affichages: 20

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T