[Power Query] Remplacer les crochets d'un nom de colonne

Bonjour,

Dans le fichier joint, pour faire un total par Trimestre et par nom, j'utilise 2 méthodes qui fonctionnent très bien, et je voudrais essayer une troisième.

Dans cette 3ème requête "T_JeCoince", j'élabore la liste des colonnes (de la 3 à la 6), et je voudrais bien utiliser cette variable dans le Table.Group, pour remplacer le nom de la colonne inscrite entre crochets par cette variable. J'ai, à mon niveau, essayé tout plein de choses, et hormis des magnifiques "error", ou alors la somme de la colonne entière si j'utilise Table.Columns, ben, j'y arrive pas.. Ici, par exemple, remplacer [T1] par ????

let
    Source = Excel.CurrentWorkbook(){[Name="T_Data"]}[Content],
    ListCols = List.Range(Table.ColumnNames(Source),2,4),
    GroupBy = Table.Group(Source, {"Nom", "Prénom"}, {{ListCols{0}, each List.Sum([T1]), type number}, {ListCols{1}, each List.Sum([T2]), type number}, {ListCols{2}, each List.Sum([T3]), type number}, {ListCols{3}, each List.Sum([T4]), type number}})
in
    GroupBy

Merci par avance, et bonne apm

Hello,

Je n’ai pas pu télécharger le fichier je suis en vacances mais de ce que je vois du code je pense qu’il faudrait partir sur une fonction List.Generate ou List.Accumulate pour donner le caractère récursif.

Après ce sont des fonctions que je ne maîtrise pas encore, jai du mal à les mettre en application avec des cas concrets.

Je te recommande cette vidéo qui est vraiment bien pour comprendre le concept.

n’hésite pas si besoin

@+

Edit : je pensais à un truc de ce style mais ça fonctionne pas, n'hésite pas à me dire ce que t'en penses. Peut être que JFL aura une idée sur le sujet

Bonjour à tous !

Opérer un GroupBy dynamique en dehors des sentiers battus.....

Problématique...."amusante" !

Une proposition ?

let
    Source = Excel.CurrentWorkbook(){[Name="T_Data"]}[Content],
    GroupBy=Table.Group(Source, {"Nom", "Prénom"},List.Transform(List.Skip(Table.ColumnNames(Source),2),(x)=>{x, each List.Sum(Table.Column(_,x))}))
in
    GroupBy

Bonsoir,

Je savais que mon challenge (qui, entre nous, n'a aucune utilité concrète, les 2 autres méthodes, surtout avec UnPivot, faisant le taf), je disais donc, que ce challenge allait vous "amuser"...

Je confirme donc le bon fonctionnement du code de JFL, et je vais essayer de comprendre (les deux codes, même celui du vacancier, qui devrait d'ailleurs profiter du beau temps, sauf s'il se trouve en Bretagne...)

Merci beaucoup, et au plaisir.

Bonsoir à tous !

..... mon challenge qui n'a aucune utilité concrète......

Si si ! Nous faire œuvrer différemment !

Vous avez raison de souligner la mauvaise météo en Bretagne. Cela fera fuir les "touristes" que je trouve bien trop nombreux pendant....mes vacances.

Hello messieurs,

Pas inutile du tout j’ai réussi à faire une première fonction List.Generate qui fonctionnait mais qui n’avait pas d’intérêt au final donc je reste quand même positif pour ce post

Étant en touriste au Pouliguen qui n’est pas la Bretagne à peu de choses près j’espère que je ne dérange en rien les vacances des vacanciers en Bretagne

Hâte de pouvoir décortiquer cette petite étape de transformation de liste :)

Messieurs une bonne soirée à vous !

Hello, JFL,

Pour ma part je n'avais aucunement conscience qu'on pouvait variabiliser ainsi un Table.Group enfin donner un caractère récursif juste avec cette syntaxe.

En fait on joue sur la liste T1 à T4 et pour chaque regroupement de table on va aller sélectionner la colonne qui correspond à notre élément de liste et créer une colonne nommée avec le nom de l'élément de liste sur lequel on se trouve. La fonction Table.Column, combinée à la fonction Table.Group sert donc de filtre pour les données à récupérer.

Ca ouvre encore plus le champ des possibles

Encore merci pour cette démonstration

Rechercher des sujets similaires à "power query remplacer crochets nom colonne"