Forum Discussion
Complex Pivot Column
- 3 years ago
Bonjour Ilovechocolate
Je vais répondre en français, "bidule", "machin" "chouette" 🙂
Même réponse qu'hier (https://community.fabric.microsoft.com/t5/Power-Query/Transform-data-with-Pivot-function-for-multiple-value-columns/td-p/3307920) sauf le "max" à la fin
C'est un classique dépivot, fusion de colonne, pivot (dans le pivot, il faut aller dans les options avancées et choisir "max" pour obtenir la dernière occurrence)
J
let
Source = VotreSource,
Unpivot = Table.Unpivot(Source, {"startDate_task", "endDate_task"}, "Attribut", "Valeur"),
CombineColumns = Table.CombineColumns(Unpivot,{"Attribut", "TaskName"},Combiner.CombineTextByDelimiter(" ", QuoteStyle.None),"Task"),
Pivot = Table.Pivot(CombineColumns, List.Distinct(CombineColumns[Task]), "Task", "Valeur", List.Max)
in
PivotVoilà pour la première partie de la question.
Pour le reste, il faudrait plus de détail pour le calcul de l'écart entre tâche (écart en jour calendaire, en jour ouvré).
Stéphane
Bonjour Stéphane,
Merci beaucoup pour la méthodo c'est beaucoup plus clair, j'étais loin de trouver la solution! Du coup, en règle général je comprends que en première étape il faut tout détailler en "lignes" les attributs que je voudrais ensuite voir en colonnes. Ensuite je fusionne les attributs avec la colonne "clé" que je veux pivoter et enfin je pivote cette colonne concaténée et les valeurs dans cette colonne deviennent mes en-têtes de colonnes.
Pour la deuxième partie j'étais plus sur un écart en jours calendaires donc très simple à faire, mais j'ai choisi ça parce que je ne savais pas que on pouvait faire en jour ouvré, je suppose qu'il me faut une autre requête avec le calendrier français et ses jours fériés?
Cordialement,
Cordialement,
Merci pour le retour
pour les écarts, on peut tout faire (en calendaire ou en jours ouvrés - avec en effet une table des jours fériés du pays concerné).
il faut aussi savoir comment faire l'écart entre 2 tâches : sont-elles triées dans la source ? je suppose qu'elles ne s'appellent pas réellement A, B, C
Sinon, sur le fond, je trouve qu'il est préréfable de travailler avec la base initiale et de ne pas pivoter les colonnes pour calculer les écarts (en travaillant par regroupement pour prendre le max de la tâche B sur l'instance "machin")
Stéphane
- Ilovechocolate3 years agoNew Member
Ok je vois, du coup tu partirais plutôt sur du DAX pour traiter ce genre de table ? Ou en règle général tu essayes de toucher le moins possibles aux tables dans PowerQuery? C'est une question que je me pose régulièrement, comme je ne travaille pas sur des énormes datasets je ne vois pas trop d'écart de performance pour l'instant entre faire beaucoup de pré-traitement dans PowerQuery et construire des mesures en DAX.
Pour ce qui est des écarts effectivement, les tâches ne sont pas dans l'ordre, mais je cherche des durées entre des tâches précises donc je vais par exemple créer une colonne "durée activité 1" qui correspond à la différence entre la fin de la tâche A et au début de la tâche C ce qui sera assez aisé avec le tableau pivoté