Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Aide Power Query

netparty

XLDnaute Occasionnel
Bonjour à tous
Je me permet de vous demander votre aide
J'ai dans mon fichier plusieurs tableaux que je fusionne avec PQ pour avoir la sommes de tous mes tableaux.
Mais j'ai des lignes en doublons qui sont comptabilisées à par dans le résultat ?

Merci d'avance pour votre aide
Bonne journée
 

Pièces jointes

  • Regroupement des quantités.xlsm
    40.4 KB · Affichages: 11
Solution
Bonjour @netparty, le forum,



PowerQuery:
let
Source = Table.SelectRows(Excel.CurrentWorkbook(), each Text.StartsWith([Name], "Tableau")),
a = {Table.ColumnNames(Source[Content]{0})} & {List.Transform(Source[Name], each _ & "_Qté")},
b = Table.Group(Table.ExpandTableColumn(Source, "Content", a{0}), a{0}{0}, {{"x", each
let x =  Table.ToColumns(Table.Group(_, "Name", {"y", each List.Sum([Quantité])}))
in Table.RenameColumns(Table.FromRows({x{1}}, x{0}), List.Zip ({x{0}, List.Transform(x{0}, each _ & "_Qté")}))},
{"Total_Quantité", each List.Sum([Quantité])}, {"Total_Longueur", each List.Sum([Longueur])}}),
Result = Table.ExpandTableColumn(b, "x", a{1})
in
Result

Bonne journée.

alexga78

XLDnaute Occasionnel
Bonjour @netparty, le forum,



PowerQuery:
let
Source = Table.SelectRows(Excel.CurrentWorkbook(), each Text.StartsWith([Name], "Tableau")),
a = {Table.ColumnNames(Source[Content]{0})} & {List.Transform(Source[Name], each _ & "_Qté")},
b = Table.Group(Table.ExpandTableColumn(Source, "Content", a{0}), a{0}{0}, {{"x", each
let x =  Table.ToColumns(Table.Group(_, "Name", {"y", each List.Sum([Quantité])}))
in Table.RenameColumns(Table.FromRows({x{1}}, x{0}), List.Zip ({x{0}, List.Transform(x{0}, each _ & "_Qté")}))},
{"Total_Quantité", each List.Sum([Quantité])}, {"Total_Longueur", each List.Sum([Longueur])}}),
Result = Table.ExpandTableColumn(b, "x", a{1})
in
Result

Bonne journée.
 

netparty

XLDnaute Occasionnel
Bonjour @alexga78
Merci
 

alexga78

XLDnaute Occasionnel
Bonjour @netparty, le forum,

Code un peu mieux structuré.

PowerQuery:
let
    Source = Table.SelectRows(Excel.CurrentWorkbook(), each Text.StartsWith([Name], "Tableau")),
    A = Table.ColumnNames(Source[Content]{0}),
    B = Source[Name],
    Sol = Table.FromRecords(
             Table.Group(   
             Table.ExpandTableColumn(Source, "Content", A), A{0}, {{"x", (x)=>
             Record.FromList({Table.Column(x,A{0}){0}}, {A{0}}) &
             List.Accumulate(B, [], (s,c)=> s & Record.FromList({List.Sum(Table.Column(Table.SelectRows(x, each [Name] = c), A{1}))} , {c & "_Qté"})) &
             List.Accumulate(List.Skip(A), [], (s,c)=> s & Record.FromList({List.Sum(Table.Column(x,c))} , {"Total_" & c}))
             }})[x])
in
    Sol

Bonne journée.
 

Discussions similaires

Réponses
14
Affichages
343
Réponses
7
Affichages
527
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…