Ajouter jours ouvrés

Accueil – Le CFO masqué Forums Power Query Ajouter jours ouvrés

  • Ce sujet contient 4 réponses, 5 participants et a été mis à jour pour la dernière fois par Daniel Blanc, le il y a 2 semaines et 1 jour.
5 sujets de 1 à 5 (sur un total de 5)
  • Auteur
    Articles
  • #124676
    sapeur1
    Participant

    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!

    #124694
    ludo.regnier
    Participant

    Bonjour
    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 courage

    • Cette réponse a été modifiée le il y a 2 semaines et 4 jours par ludo.regnier.
    #124696
    Stéphane Lorin
    Participant

    Bonjour

    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

    #124697
    Xavier Allart
    Participant

    Bonjour

    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és

    Ma 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.
    #124817
    Daniel Blanc
    Participant

    Bonjour Sapeur1, le Forum,

    Une autre solution qui donne le résultat escompté (voir fichier ci-joint)
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
5 sujets de 1 à 5 (sur un total de 5)
  • Vous devez être connecté pour répondre à ce sujet.