Nbre d'occurences selon un critère avec report des données

Bonjour à toutes et tous,

Je cherche à partir d'un fichier Excel à lister si un même émetteur de virement (colonne F) effectue des virements à des "clés uniques" différentes tout en reportant les informations dans les colonnes adjacentes de H à S.

Il peut y avoir jusqu'à 10.000 émetteur de virement.

Si un émetteur de virement effectue pour seulement une clé unique cela ne m'intéresse pas d'obtenir l'info.

Pensez-vous que ce soit réalisable ? J'ai tenté pas mal de chose sans succès :(

J'insère un fichier en PJ pour plus de compréhension.

Merci par avance pour votre aide

14classeur1.xlsx (9.95 Ko)

Bonjour dyscus,

Voir onglet "TEmetMult" de la proposition ci-jointe réalisée via PowerQuery. La sélection devrait répondre à votre demande par contre la présentation est en ligne.

10classeur1.xlsx (22.03 Ko)

Les données de la Feuil1 sont transformées en tableau structuré ce qui est nécessaire pour les exploiter par PQ. Pour actualiser l'onglet "TEmetMult" => menu "Données" / "Actualiser tout". Pour afficher les requêtes, menu "Données" / "Requêtes et connexions".

Cdlt,

Cylfo

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
12dyscus-pq.xlsx (21.26 Ko)

On peut ajuster le nombre de colonnes à afficher. J'ai seulement laissé "Observation" par simplification...

Merci à tous les deux.

Par contre comment comment je fais pour lancer le tri ?

Excusez la question débile, j'ai l'habitude de lancer des macros VBA.

Re,

Menu "Données" / "Actualiser tout" fonctionne pour les 2 propositions mais celle de JB_ est bien mieux

Cdlt,

Cylfo

Bonjour à tous !

Pour le "fun", une autre approche Power Query :

"Actualiser tout " (via le ruban ou le tableau retourné par Power Query) si la source évolue.

Rechercher des sujets similaires à "nbre occurences critere report donnees"