let
Source = Excel.CurrentWorkbook(){[Name="T_Data"]}[Content],
PermutCol = Table.ReorderColumns(Source,{"Date (aa-tt)", "N° lot", "Classe prod", "Usine", "IP", "66% IP par usine par prod", "Trimestre", "Annéé longue", "Année court"}),
// Cette étape ne sert à rien. Je m'en sers juste pour être sûr de l'orthographe des noms de colonne (absence d'espace...)
// J'aurais pu la supprimer..
GroupBy = Table.Group(PermutCol, {"Date (aa-tt)", "Classe prod", "Usine"}, {{"Nombre", each Number.Round(Table.RowCount(_)*2/3), Int64.Type},{"Tbl", each _, type table [IP=number]}}),
//Ici, je regroupe par Trimestre, Classe et Usine. La colonne "Nombre" calcule les occurences par groupe.
//Je multiplie par 2/3 pour avoir les 66% qui serviront à la suite - Ex, si 12 occurences, ça donne 8
//La colonne "tbl" comporte la Table afférente à chaque Groupe. Clique dans la cellule (pas sur le nom), et dessous, tu auras la composition
AjtRang = Table.AddColumn(GroupBy, "Rang", each Table.AddRankColumn([Tbl],"Rang",{"IP", Order.Descending},[RankKind = RankKind.Ordinal])),
//Ici, je calcule le classement par groupe, selon l'IP, et en cas d'égalité, c'est numéroté à suivre (on ne saute pas de 1 à 3 si 2 premiers ex-aequo, mais on le pourrait, en passant en RankKing.Competition)
ExpandRang = Table.ExpandTableColumn(AjtRang, "Rang", {"N° lot", "IP", "Rang"}, {"N° lot", "IP", "Rang"}),
// On développe la colonne précédemment créee
Best66 = Table.AddColumn(ExpandRang, "66% IP par usine par prod", each if [Rang] <= [Nombre] then 1 else null),
// on recrée la colonne 66% avec calcul si le classement est <= au calcul de l'étape GroupBy
SupprCol = Table.SelectColumns(Best66,{"N° lot", "Classe prod", "Usine", "IP", "66% IP par usine par prod", "Date (aa-tt)"}),
// on ne garde que les colonnes qui nous intéressent (on supprime le reste, donc on s'affranchit des autres colonnes)
Filtre = Table.SelectRows(SupprCol, each ([#"66% IP par usine par prod"] = 1))
// Filtre sur les 66%
in
Filtre