Accueil – Le CFO masqué › Forums › Power Query › Ajouter jours ouvrés
- Ce sujet contient 7 réponses, 6 participants et a été mis à jour pour la dernière fois par s.boissais, le il y a 9 mois et 2 semaines.
-
AuteurArticles
-
17 janvier 2023 à 10 h 37 min #124676sapeur1Participant
Bonjour tout le monde,
Ayant longuement cherché sur internet mais n’ayant rien trouvé qui puisse m’être utile, je viens solliciter votre précieuse aide !
Voici la problématique: j’ai une colonne contenant une série de dates. Je souhaite créer une nouvelle colonne afin de rajouter à chaque date un délai de 3 jours OUVRES.
Depuis cette colonne et via Power Query, j’utilise donc la formule (Date.AddDays[….],3). Cependant je ne souhaite tomber que sur des jours ouvrés (semblable à la formule Excel SERIE.JOUR.OUVRE).
Exemple: pour une date initiale un jeudi, je souhaite tomber sur le mardi suivant et non pas le dimanche.
Je ne trouve rien pour répondre à mon besoin via Power Query 🙁
Une quelconque aide svp??
Merci!
18 janvier 2023 à 1 h 06 min #124694ludo.regnierParticipantBonjour
Je suis débutant ++sur power query mais la solution à laquelle je pense serait de créer une seconde table avec deux colonnes, la première contenant les jours de la semaine et la seconde les jours ouvrés correspondant (par exemple à jeudi correspond mardi ouvré ), puis croiser les deux tables pour récupérer la valeur de la seconde colonne de la seconde table.
Sinon (et c’est pas bien de tricher !) j’ai posé votre question à ChatGPT et voici le code M proposé :let
startDate = #table({“Date de départ”},{{“01/01/2021”}}),
dateList = List.Dates(startDate[Date de départ], 3, #duration(1,0,0,0)),
workDays = List.Select(dateList, each Date.IsWorkday( _ )),
endDate = List.Last(workDays)
in
endDate
Bon courage18 janvier 2023 à 4 h 05 min #124696Stéphane LorinParticipantBonjour
La réponse de ChatGPT est assez bluffante mais je doute que ça renvoi le résultat attendu en l’état. je ne trouve pas la fonction Date.IsWorkday dans Power Query (pas présente sur le site https://learn.microsoft.com/fr-fr/powerquery-m) et la fonction va renvoyer le dernier jour ouvré dans les trois jours suivant la date demandée.
Je propose pour ma part de créer une nouvelle colonne avec une liste de date de 10 jours (pour être large !), de ne conserver que les jours de la semaine et ceux qui ne sont pas fériés. puis de sélectionner le 3e jour (donc le 2 car power query commence les listes à 0)
each List.Select(List.Dates(Date.AddDays([Date],1),10,#duration(1,0,0,0)),each Date.DayOfWeek(_, Day.Monday)<5 and List.IsEmpty(List.Intersect({Fériés, {_}}))){2}
avec les dates initiales dans le champ [Date] et la liste “Fériés” désignant les jours fériés.
Stéphane
18 janvier 2023 à 4 h 30 min #124697Xavier AllartParticipantBonjour
La solution que je propose ne prend pas en charge les jours fériés.
S’il faut en tenir compte : avez-vous déjà un calendrier avec les jours fériésMa solution propose de calculer la date 3 jours après, si cette date tombe un dimanche on ajoute 4 jours, 5 jours pour un samedi et 3 jours pour les autres
Je vous joins un fichier Excel, avec le tableau de base avec des formules Excel, et 2 Tables PowerQuery la première avec toutes les étapes décomposées sur plusieurs colonnes. La 2e table toute la formule en 1 seule étape.
Cordialement
Attachments:
You must be logged in to view attached files.20 janvier 2023 à 15 h 14 min #124817DanielParticipantBonjour Sapeur1, le Forum,
Une autre solution qui donne le résultat escompté (voir fichier ci-joint)
Cordialement
DanielAttachments:
You must be logged in to view attached files.23 janvier 2024 à 12 h 38 min #136749s.boissaisParticipantBonjour à tous,
vos réponses sont impressionnantes d’efficacité. bravo à vous !
Cependant, si le nombre de jours ouvrés ajoutés est variable, existe-t-il une solution svp ?
J’ai beau retourner le problème dans tous les sens, je patauge…Merci de votre aide,
Sébastien
23 janvier 2024 à 13 h 41 min #136751DanielParticipantBonjour Sébastien, le Forum,
Tu parle de variabilité des jours ouvrés, mais quel serait le paramètre qui définirait cette variabilité.
Pourrais-tu donner de plus amples explications ?
Cordialement
Daniel24 janvier 2024 à 3 h 47 min #136791s.boissaisParticipantBonjour Daniel,
Chacune de mes commandes peut avoir un temps de réception (en jours ouvrés) différentes.
A partir de la date livraison je cherche à calculer la date de réception complète prévue.
Par Excel, la formule est SERIE.JOUR.OUVRE
Par Power BI, je ne vois pas comment faire, il y a peut être une logique qui m’échappe.Merci de votre aide,
Sébastien
Attachments:
You must be logged in to view attached files. -
AuteurArticles
- Vous devez être connecté pour répondre à ce sujet.