Bonjour à tous,
Une proposition via Power Query également. Elle retourne le résultat attendu donc j'espère que je suis dans le bon !
Le problème avec les colonnes c'est que les tableaux structurés n'acceptent pas les noms de colonnes répétés. On va donc s'en passer ici, si vous me le permettez
let
Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
GroupBy = Table.Group(Source, {"Obseravtion"}, {{"Nombre", each _, type table [Clé_unique=nullable number, Nom=nullable text, Prénom=nullable text, Date=nullable datetime, Montant=nullable number, Obseravtion=nullable text, Nbre de bénéficiaire différent=nullable number]}, {"Count", each Table.RowCount(_), Int64.Type}}),
Filtre = Table.SelectRows(GroupBy, each [Count] > 1),
TblDvlp = Table.ExpandTableColumn(Filtre, "Nombre", {"Clé_unique", "Nom", "Prénom"}, {"Clé_unique", "Nom", "Prénom"}),
FusionCol = Table.CombineColumns(Table.TransformColumnTypes(TblDvlp, {{"Clé_unique", type text}}, "fr-FR"),{"Clé_unique", "Nom", "Prénom"},Combiner.CombineTextByDelimiter("|", QuoteStyle.None),"Fusionné"),
GroupBy2 = Table.Group(FusionCol, {"Obseravtion"}, {{"Nombre", each Text.Combine([Fusionné], "|"), type text}}),
NbOccurence = Table.AddColumn(GroupBy2, "Occurence", each List.Count(Text.PositionOf([Nombre], "|", Occurrence.All))),
Fractionnement = Table.SplitColumn(NbOccurence, "Nombre", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), List.Max(NbOccurence[Occurence])+1),
ColSuppr = Table.RemoveColumns(Fractionnement,{"Occurence"})
in
ColSuppr
On peut ajuster le nombre de colonnes à afficher. J'ai seulement laissé "Observation" par simplification...