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 ?
1728723647013.png

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 @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.
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
341
Réponses
7
Affichages
526

Statistiques des forums

Discussions
314 426
Messages
2 109 473
Membres
110 488
dernier inscrit
glossaire