Liste nom et nombre nom dans bdd

Bonjour,

A partir d'une extraction sur laquelle je n'ai pas la main (= mise en forme non modifiable), je dois extraire une liste de nom selon des cas.

Sur le fichier joint, onglet BDD :
- Colonne A = indice de l'agence source
- Colonne B = identifiant unique du produit
- Colonne C = type C ou type A du produit (que deux cas possibles)
- Colonne D/E, F/G, H/I, J/K, L/M , N,O : montant payé par le client n/client n

La liste des clients d'un produit à l'autre est la même, mais certains produits reçoivent 6 paiements (donc 6 client), certains un seul, et l'ordre n'est pas le même.

Je cherche à avoir :
- Par source (colonne A),
- Par type de produit (colonne C)

le nombre et les noms sans doublon des clients ayant achetés.

Par exemple (onglet Resultats), pour la source 20, pour le produit C, il y a eu 8 clients en tout et voici leurs noms (liste dans l'onglet). A côté, pour le produit A, et toujours la source 20, il y a eu 7 clients en tout avec la liste indiquée.

Aujourd'hui, pour avoir ce résultat, je filtre sur la source et le produit, je copie/colle (avec cases vides éventuellement) les noms, je trie cette liste en supprimant les cases vides et les doublons et ça me donne le résultat. Mon objectif est d'automatiser ça.
Cette automatisation peut passer par l'ajout de cases avec des filtres, puisque ce résultat est "calculé" dans un onglet vierge et neuf.

Si quelqu'un a des idées ?
Merci par avance !

Bonjour,

pour les C dans votre exemple il manque Jacques, non ?

@ bientôt

LouReeD

J'ai vérifié, mais non.

Le seul Jacques dans la BDD est en E3, qui correspond à un produit C mais pour la source 15.

Je remets en PJ le même fichier, mais avec le détail de ma manip pour obtenir le résultat (je copie les clients en colonnes).

Bonjour à tous !

Via Power Query (nativement intégré dans Microsoft 365), il est aisé d'obtenir ceci :

image

Ce tableau correspond à vos attentes ?

Bonjour,

Je débute encore avec PQ, mais la solution ci-jointe fonctionne. J'ai utilisé 2 plages nommées pour vos 2 critères, et il suffit d'actualiser la requete pour mettre à jour le résultat.

Le code M de la requête :

let
    filtreSrc = Excel.CurrentWorkbook(){[Name="srcPQ"]}[Content]{0}[Column1],
    filtreEsp = Excel.CurrentWorkbook(){[Name="espPQ"]}[Content]{0}[Column1],
    Source = Excel.CurrentWorkbook(){[Name="BDD"]}[Content],
    srcType = Table.TransformColumnTypes(Source,{{"Source", Int64.Type}, {"ID produit", type text}, {"Espèce principale", type text}, {"€ client 1", Int64.Type}, {"Client 1", type text}, {"€ client 2", Int64.Type}, {"Client 2", type text}, {"€ client 3", Int64.Type}, {"Client 3", type text}, {"€ client 4", Int64.Type}, {"Client 4", type text}, {"€ client 5", Int64.Type}, {"Client 5", type text}, {"€ client 6", Int64.Type}, {"Client 6", type text}}),
    filtre = Table.SelectRows(srcType, each ([Source] = filtreSrc) and ([Espèce principale] = filtreEsp)),
    colsCli = Table.SelectColumns(filtre,
        {"Client 1", "Client 2", "Client 3", "Client 4", "Client 5", "Client 6"}
    ),
    toList = List.Combine(Table.ToColumns(colsCli)),
    res = List.RemoveNulls(List.Distinct(toList))
in
    res

Le fichier joint

EDIT : Salut @JFL pris de vitesse

Et oui la source !

Il faudrait que je m'arrête d'y aller ! J'aurais les idées plus claires !
je croyai même avoir mis que c'était une question pour PQ... c'est vous dire !

@ bientôt

LouReeD

Bonjour à tous de nouveau !

Il faudrait que je m'arrête d'y aller ! J'aurais les idées plus claires !
je croyai même avoir mis que c'était une question pour PQ... c'est vous dire !

Attention .... la "PQmania" va s'emparer de vous !

coucou

pour Lou reed afin de craquer à fond

challenge :1 seule formule

15postit-2025.xlsx (14.56 Ko)

Bonjour à tous !

challenge :1 seule formule

Une proposition type formule unique et dynamique pour gérer l'entièreté du tableau (nécessite M365) :

=LET(
    et; BDD[#En-têtes];
    tbl; CHOISIRCOLS(BDD; EQUIV(FILTRE(et; GAUCHE(et) <> "€"); et; 0));
    t; SI(tbl = 0; ""; tbl);
    dc; DANSCOL(SI(EXCLURE(t; ; 3) = ""; ""; PRENDRE(t; ; 1) & "-" & CHOISIRCOLS(t; 3) & "|" & EXCLURE(t; ; 3)));
    ma; EXCLURE(REDUCE(""; FILTRE(dc; dc <> ""); LAMBDA(a;c; ASSEMB.V(a; FRACTIONNER.TEXTE(c; "|")))); 1);
    noms; GROUPER.PAR(PRENDRE(ma; ; 1); PRENDRE(ma; ; -1); LAMBDA(x; TABLEAU.EN.TEXTE(UNIQUE(x))); ; 0);
    nb; GROUPER.PAR(PRENDRE(ma; ; 1); PRENDRE(ma; ; -1); LAMBDA(x; NBVAL(UNIQUE(x))); ; 0);
    ASSEMB.V(
        {"Source-Esp princip"."Nombre"."Noms"};
        ASSEMB.H(PRENDRE(noms; ; 1); CHOISIRCOLS(nb; 2); PRENDRE(noms; ; -1))
    )
)

Elle retourne ceci :

image

Remarque : Ma préférence va, très nettement, à l'option Power Query (Code plus concis et maintenance facilitée).

Bonjour à tous !

challenge :1 seule formule

Une proposition type formule unique et dynamique pour gérer l'entièreté du tableau (nécessite M365) :

=LET(
    et; BDD[#En-têtes];
    tbl; CHOISIRCOLS(BDD; EQUIV(FILTRE(et; GAUCHE(et) <> "€"); et; 0));
    t; SI(tbl = 0; ""; tbl);
    dc; DANSCOL(SI(EXCLURE(t; ; 3) = ""; ""; PRENDRE(t; ; 1) & "-" & CHOISIRCOLS(t; 3) & "|" & EXCLURE(t; ; 3)));
    ma; EXCLURE(REDUCE(""; FILTRE(dc; dc <> ""); LAMBDA(a;c; ASSEMB.V(a; FRACTIONNER.TEXTE(c; "|")))); 1);
    noms; GROUPER.PAR(PRENDRE(ma; ; 1); PRENDRE(ma; ; -1); LAMBDA(x; TABLEAU.EN.TEXTE(UNIQUE(x))); ; 0);
    nb; GROUPER.PAR(PRENDRE(ma; ; 1); PRENDRE(ma; ; -1); LAMBDA(x; NBVAL(UNIQUE(x))); ; 0);
    ASSEMB.V(
        {"Source-Esp princip"."Nombre"."Noms"};
        ASSEMB.H(PRENDRE(noms; ; 1); CHOISIRCOLS(nb; 2); PRENDRE(noms; ; -1))
    )
)

Elle retourne ceci :

image

Remarque : Ma préférence va, très nettement, à l'option Power Query (Code plus concis et maintenance facilitée).

ben oui ,, j'ai pourtant 365 familial ,, mais Mossieur l'administrateur (que je ne connais pas) m'interdit pour des raisons de sécurité (que j'ignore) ;le PQ et l'ouverture/exécution de fichiers VB

En gros ,,, je suis encore moins bien lotti qu'avec mon Xl 2007 ,,,,bien entendu dans mon bled ces soucis ,c'est de l'hébreu

Bonjour à tous !

ben oui ,, j'ai pourtant 365 familial ,, mais Mossieur l'administrateur (que je ne connais pas) m'interdit pour des raisons de sécurité (que j'ignore) ;le PQ et l'ouverture/exécution de fichiers VB

Ce brave homme méconnait les termes productivité et rentabilité.
Pauvre de vous .....

Bonjour à tous !

ben oui ,, j'ai pourtant 365 familial ,, mais Mossieur l'administrateur (que je ne connais pas) m'interdit pour des raisons de sécurité (que j'ignore) ;le PQ et l'ouverture/exécution de fichiers VB

Ce brave homme méconnait les termes productivité et rentabilité.
Pauvre de vous .....

non ,, c'est dans l'ordi qu'il est planqué , et certainement de ma faute lors de l'installation ..... avant on mettait un CD ,,, mais là , c'est comptes , des zidentifiants ,

tout pour que je sois planté ...........................

Rechercher des sujets similaires à "liste nom nombre bdd"