Bonjour
Voici une solution pour supprimer la dernière ligne pour chaque salle.
- Trier la table par salle et par date
- Fare un regroupement par salle, avec une sortie sur deux colonnes (et deux opérations) : une sur “toutes les lignes”, et une autre sur “compter les lignes”
- Ajouter une colonne personnalisée qui ajoute un numéro de ligne (un index) par salle
- Supprimer les colonnes en trop, ici “Salle” et “Table” (pas indispensable, mais c’est plus propre)
- Cliquer sur la double flèche pour développer la colonne NumLigne
- Créer un filtre quelconque. Il s’agit juste d’avoir une base, car nous allons la modifier la formule
- Dans la barre de formule, modifier l’expression du filtre pour ne garder que les lignes dont l’index est différent de NbLignesParSalle. Dans la capture ci-dessous, j’ai ajouté une condition pour ne pas supprimer la salle s’il n’y a qu’une ligne
A titre indicatif, voici le script dont je me suis servi. Il suffit de le coller dans l’éditeur avancé d’une requête vide pour voir les opérations en détail.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCk7MyUlVMFTSUTIw1c1PLlGK1UERNMMmaI5N0AJN0AgoaGiIRRDDImOQoCWaoAlIuwEWQewqoRbFAgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Salle = _t, Date = _t]),
#"Type modifié" = Table.TransformColumnTypes(Source,{{"Salle", type text}, {"Date", type date}}),
#"Lignes triées" = Table.Sort(#"Type modifié",{{"Salle", Order.Ascending}, {"Date", Order.Ascending}}),
#"Lignes groupées" = Table.Group(#"Lignes triées", {"Salle"}, {{"Table", each _, type table [Salle=nullable text, Date=nullable date]}, {"NbLignesParSalle", each Table.RowCount(_), Int64.Type}}),
#"Personnalisée ajoutée" = Table.AddColumn(#"Lignes groupées", "NumLigne", each Table.AddIndexColumn( [Table], "Index", 1 )),
#"Colonnes supprimées" = Table.RemoveColumns(#"Personnalisée ajoutée",{"Salle", "Table"}),
#"NumLigne développé" = Table.ExpandTableColumn(#"Colonnes supprimées", "NumLigne", {"Salle", "Date", "Index"}, {"Salle", "Date", "Index"}),
#"Lignes filtrées" = Table.SelectRows(#"NumLigne développé", each ([Index] <> [NbLignesParSalle] or [NbLignesParSalle] = 1))
in
#"Lignes filtrées"