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
6
Affichages
410
Réponses
8
Affichages
326

Membres actuellement en ligne

Statistiques des forums

Discussions
314 783
Messages
2 112 925
Membres
111 702
dernier inscrit
ELEHMAEA