Power query Regroupement avec index et classement

Bonsoir,

J'aimerai savoir s'il est possible d'obtenir un classement par catégorie directement lors du regroupement. Je m'explique, je voudrais regrouper un fichier par catégorie et obtenir un index me donnant le classement dans la catégorie du regroupement. Cela en une seule opération.

Dans le fichier joint le résultat de la colonne Clt/Cat. Et si possible, toujours en une manipulation, la concaténation des colonnes Clt/Cat et Total.

D'avance merci.

Cordialement

Bonjour,

Je ne sais pas si c'est cela que tu attendais...

Ici, j'utilise la fonctionnalité "Rank", qui permet de faire le distinguo en cas d'égalité (si égalité, les concurrents ont le même classement, contrairement à l'ajout d'un index)

let
    Source = Table.SelectColumns(Table.SelectRows(Pdf.Tables(Web.Contents("http://extranet.ffta.fr/pdfresultats/2023/S_0169182_20231021_65006.pdf"), [Implementation="1.3"]),each ([Kind] = "Table")),{"Data"}),
    ExpandPdf = Table.PromoteHeaders(Table.ExpandTableColumn(Source, "Data", {"Column2", "Column3", "Column4", "Column5", "Column8"}, {"Column2", "Column3", "Column4", "Column5", "Column8"}), [PromoteAllScalars=true]),
    Filtr = Table.SelectRows(ExpandPdf, each ([Cat] <> null and [Cat] <> "Cat")),
    GroupBy = Table.Group(Filtr, {"Cat"}, {{"Nombre", each Table.RowCount(_), Int64.Type}, {"Tbl", each _, type table [Nom=text, Club=text, Licence=text, Cat=text, Total=text]}}),
    CalculRang = Table.AddColumn(GroupBy, "Rang", each Table.AddRankColumn([Tbl],"Rang",{"Total", Order.Descending},[RankKind = RankKind.Competition])),
    ExpandRang = Table.ExpandTableColumn(CalculRang, "Rang", {"Nom", "Club", "Licence", "Total", "Rang"}, {"Nom", "Club", "Licence", "Total", "Rang"}),
    Fusion = Table.CombineColumns(Table.TransformColumnTypes(ExpandRang, {{"Rang", type text}, {"Nombre", type text}}, "fr-FR"),{"Rang", "Nombre"},Combiner.CombineTextByDelimiter(" / ", QuoteStyle.None),"Clt/Cat"),
    Select = Table.SelectColumns(Fusion,{"Cat", "Club", "Licence", "Nom", "Clt/Cat", "Total"}),
    Tri = Table.Sort(Select,{{"Club", Order.Ascending}, {"Cat", Order.Ascending}, {"Nom", Order.Ascending}})
in
    Tri

Si ça peut faire avancer

Bonne journée, et bonne semaine

Hello,

Une approche qui revient au même que ce que propose cousinhub que je salue

let
    Source = Pdf.Tables( Web.Contents( "http://extranet.ffta.fr/pdfresultats/2023/S_0169182_20231021_65006.pdf") ),

    FilterTable = Table.SelectRows(Source, each ( [Kind] = "Table") ) [[Data]],

    Combine = Table.Combine( Table.TransformColumns( FilterTable, { "Data", each Table.PromoteHeaders( _ ) } ) [Data]),

    FilterNullClt = Table.SelectRows( Combine, each ( [Clt] <> null) ) [[Cat],[Nom],[Club],[Total]],

    GroupBy = Table.Group(FilterNullClt, {"Cat"}, { { "tbl", each let a = Table.AddRankColumn(  _ , "Rang" ,{"Total", Order.Descending},[RankKind = RankKind.Competition]) in Table.TransformColumns( a , {"Rang", each Text.From(_) & "/" & Text.From(List.Count ( a[Cat] ) ) }) } }),

    Combine2 = Table.Combine(GroupBy[tbl]),

    Sort = Table.Sort(Combine2,{{"Club", Order.Ascending}, {"Cat", Order.Ascending}, {"Nom", Order.Ascending}})
in
    Sort

@+

Bonjour BAROUTE78, cousinhub,

Merci de vous être penchés sur mon problème.

Vos propositions me font découvrir de nouvelles perspectives, je vous en remercie.

Je regarde cela de plus près.

Bonne journée.

Cordialement.

Rechercher des sujets similaires à "power query regroupement index classement"