Power Query Developpement Data

Bonjour à tous,

Sur Power Query, à l'étape de développement du Data lorsqu'on importe plusieurs fichier de même structure, la ligne proposé se présente comme ceci :

DvptData = Table.ExpandTableColumn(FiltreSheet, "Data", {"2027", "2028", "2029", "2030", "Entreprise"}, {"2027", "2028", "2029", "2030", "Entreprise"}),

Peut on remplacer dans le code M, la partie faisant référence aux colonnes "Années" et "Entreprise" par leur position dans la liste des colonnes potentiellement développables ?,

ou avez vous une autre astuce, faisant recours à

Text.Start with ("",2) = 20  or Text.Start with ("",2) = En

Merci d'avance,

Cordialement,

Bonjour,

Sans filet, peut-être dans l'idée :

List.Select(List.Distinct(List.Combine(List.Transform(FiltreSheet[Data], each Table.ColumnNames(_)))), each Text.Start (_,2)= "En" or Text.Start(_,2) = "20")

A savoir que le List.Combine permet de restituer tous les noms de colonne de toutes les tables (même si ceux-ci sont différents)

Peut-être?

Ce qui pourrait donner :

DvptData = Table.ExpandTableColumn(FiltreSheet, "Data",List.Select(List.Distinct(List.Combine(List.Transform(FiltreSheet[Data], each Table.ColumnNames(_)))), each Text.Start (_,2)= "En" or Text.Start(_,2) = "20"))

Non testé

Bonjour Cousinhub,

Merci beaucoup c'est parfait,

Cordialement,

Re-,

A voir, mais peut-être qu'en bufférisant la liste, il pourrait y avoir un certain gain...

Style :

FiltreSheet = Étape d'avant,
ListCols = List.Buffer(List.Select(List.Distinct(List.Combine(List.Transform(FiltreSheet[Data], each Table.ColumnNames(_)))), each Text.Start (_,2)= "En" or Text.Start(_,2) = "20")),
DvptData = Table.ExpandTableColumn(FiltreSheet, "Data", ListCols),
Suite du code

Il me semble l'avoir déjà remarqué, mais je ne sais plus où...

Bonne soirée

Bonsoir Cousinhub

Après test sur mon fichier original, je te confirme que la bufférisation permet un gain non négligeable

Merci pour cet info,

Bonne soirée à vous,

Cordialement,

Bonjour

Une remarque complémentaire, vous indiquez que tous les fichiers ont la même structure, si c'est vraiment le cas il n'est pas nécessaire de lire tous les titres pour extraire les colonnes commençant par "En" ou "20" : il suffit de prendre le premier (index 0)

= Table.ExpandTableColumn(FiltreSheet, "Data", List.Select(Table.ColumnNames(FiltreSheet[Data]{0}), each Text.Start (_,2)= "En" or Text.Start(_,2) = "20"))

par ailleurs, vous ne parliez que de la colonne "Entreprise", pas toutes les colonnes qui commenceraient par "En" et on peut aussi utiliser Text.StartsWith

= Table.ExpandTableColumn(FiltreSheet, "Data", List.Select(Table.ColumnNames(FiltreSheet[Data]{0}), each _= "Entreprise" or Text.StartsWith(_,"20")))

Stéphane

Bonsoir Raccourcix,

Merci beaucoup pour votre retour qui fonctionne également,

Cordialement,

Rechercher des sujets similaires à "power query developpement data"