Microsoft 365 Répartition charge de travail dans le temps

OscarLab

XLDnaute Nouveau
Bonjour à tous,

Je souhaite avoir un tableau Excel qui répartisse une charge de travail horaire dans le temps en fonction des projets, de leur date de début et leur date de fin.
J'ai trouvé mon bonheur sur internet avec un tableau dynamique qui me calcule automatiquement cette répartition en prenant en compte les week-end et jour férié.
C'est exactement l'outil que je cherche puisque je peux suivre au jour le jour (ou au mois) la charge de travail.

Pourquoi ce message me direz vous?
Et bien parce que je suis débutant et que je cherche à comprendre comment je pourrai reproduire ce tableau et comment il fonctionne!
Je souhaiterai être capable de reproduire le tableau de 0 ou pouvoir le modifier. En farfouillant dans les options je n'ai pas réussi à trouver les formules utilisées etc.

Ca m'intéresse moins d'utiliser un tableau que je ne comprends pas, ou que je ne suis pas capable de recréer.

Si vous avez des pistes pour trouver les options, ou comment reproduire le tableau je suis preneur :)
 

Pièces jointes

  • Répartition charge de traval.xlsx
    31.2 KB · Affichages: 30

OscarLab

XLDnaute Nouveau
Bonjour!
Effectivement je me suis mal exprimé, c'est le tableau dynamique que je n'arrive pas à recréer. Quand je souhaite le récréer Excel me propose en champ uniquement date de début et date de fin. Et non tous les jours ouvrés comme sur le modèle que j'ai trouvé...
 

merinos

XLDnaute Accro
Bonjour @OscarLab ,

Ceci est un bel exemple de travail en PowerQuery.

Il y a dans ce document 3 query... (tu les verras via l'onglet data/query et connections)

Le premier "Tâches" charge juste la table tâches

le second charge la table des jours fériés...

et le 3° fait toute la magie... il est appelé calendrier.. mais c'est faux: il s'agit d'une répartion par jour et par tâche de la charge de travail.

En suivant toutes les étapes du query, tu peux voir ce qu'il exécute... (flèche rouge dans mon image. )

Ceci dit ce query est un peu complexe pour commencer.

1640946388313.png


il y a par exemple:
1640946523716.png


En gros la colonne "Fériés contient l'extrait de la table Fériés mais filtré sur le contenu de la colonne "Dates"
donc si le 10/2/2022 n'est pas férié, c'est vide. (cfr recherchev)

par contre l'opération "grouped row" crée pour chaque tache 2 colonnes: le nombre de lignes qui s'y rapportent (ici jours ouverts) et une table avec les lignes (ici 38 lignes pourle projet 1


1640946724426.png



Bref on est un peu loin des cellules aux quelles on est habitué dans excel.

Perso je suis fana de Query.
 

OscarLab

XLDnaute Nouveau
Bonjour @merinos !

Merci pour votre réponse! C'est exactement le "Menu/Options" que je cherchais. Même si je ne comprends pas tout, je sais au moins d'où cette automatisation magique vient!

Ca à l'air plus complexe que je ne le pensais et je ne savais pas du tout que ce genre de choses existaient dans Excel!

Il va falloir que je me penche plus sérieusement sur la question pour comprendre leurs fonctionnements.

Merci d'avoir pris le temps de m'éclairer :)
 

Hasco

XLDnaute Barbatruc
Repose en paix
bonjour et meilleurs voeux à chacun,

Comme ce genre de problème m'interpelle voici une proposition par power query également, la requête est nommée 'Planification'

Les dates sont construites par :

VB:
List.Difference(List.Select(List.Transform({Number.From([Date début])..Number.From([Date fin])},Date.From), each Date.DayOfWeek(_)<5),Fériés[Fériés])

Qui commence par construire une liste de dates entre la date de début et la date de fin (List.TransForm...), en sélectionne les jours de semaine inférieurs à vendredi (List.Select....)et ne conserve que ceux qui ne sont pas dans la liste des fériés (List.Difference...)

La requête entière :

Code:
let
    Source = Tâches,
    #"Type modifié" = Table.TransformColumnTypes(Source,{{"Tâches", type text}, {"Date début", type date}, {"Date fin", type date}, {"Heures", Int64.Type}}),
    #"Dates ajoutées" = Table.AddColumn(#"Type modifié", "Dates", each List.Difference(List.Select(List.Transform({Number.From([Date début])..Number.From([Date fin])},Date.From), each Date.DayOfWeek(_)<5),Fériés[Fériés]), type date),
    #"Nombre de jours ajouté" = Table.AddColumn(#"Dates ajoutées", "Nb jours", each List.Count([Dates])),
    #"Heures par jour ajoutées" = Table.AddColumn(#"Nombre de jours ajouté", "Heures / Jour", each [Heures] / [Nb jours],Int64.Type),
    #"Dates développées" = Table.ExpandListColumn(#"Heures par jour ajoutées", "Dates"),
    #"Sélection des colonnes" = Table.SelectColumns(#"Dates développées",{"Tâches", "Dates", "Nb jours", "Heures / Jour"})
in
    #"Sélection des colonnes"

Cordialement
 

Pièces jointes

  • OscarLab-Répartition charge de traval.xlsx
    38.5 KB · Affichages: 25
Dernière édition:

Discussions similaires

Réponses
6
Affichages
277

Statistiques des forums

Discussions
311 721
Messages
2 081 929
Membres
101 843
dernier inscrit
Thaly