Recherchev de plusieurs cellules aux m critèr

Résolu
PVLV Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
Mike-31 Messages postés 18406 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Dans un tableau sous forme de base de données je renseigne des personnes selon leur groupe (A, B, C ou D) et part entités. Il peut y avoir de 1 à 4 personnes par groupe :
Entité 1 Gpe A Mr a
Entité 1 Gpe A Mr b
Entité 1 Gpe B Mr c
Entité 1 Gpe C Mr d
Entité 1 Gpe C Mr e
Entité 1 Gpe C Mr f
Entité 2 Gpe A .....

Et je souhaite mettre ca en forme dans un tableau par entité mais je ne sais pas comment lui dire de de rechercher tous les Gpe A de l'entité 1 sachant que d'une entité à l'autre ce n'est pas le même nombre de personnes. J'imagine qu'il faut incrémenter une liste ...

Merci de votre aide.
A voir également:

8 réponses

Mike-31 Messages postés 18406 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Salut,

je te conseille de nommer les plages par colonne, exemple si tu as en colonne F tes code (A, B, C etc ...) nomme la plage de données Code
si tu veux extraire les noms exemple colonne C, nomme cette plage Nom
en G3 par exemple tu saisis tes critères de rechercher ou crée une liste de validation A, B, C etc ...
colle cette formule matricielle qu'il faudra confirmer en combinant en même temps les 3 touches Ctrl, Shift(touche majuscule) et Entrée
=INDEX(Nom;PETITE.VALEUR(SI(Code=$G$3;LIGNE(INDIRECT("1:"&LIGNES(Code))));LIGNES($G$3:$G3)))
pour confirmer cette formule matricielle soit tu active la cellule contenant la formule et clic dans la barre des formule et clic sur les 3 touches en même temps ou double clic dans la cellule contenant la formule et clic sur les 3 touches. si tu fais bien la formule se placera entre {}
et ressemblera à {=INDEX(Nom; PETITE.VALEUR(SI(Code=$G$3;LIGNE(INDIRECT("1:"&LIGNES(Code))));LIGNES($G$3:$G3)))}
incrémente cette formule vers le bas
si tu veux rechercher la liste des valeurs qui se trouve en D par exemple nomme cette plage ex. Montants, modifie simplement la formule et n'oublie pas de confirmer la matricielle
=INDEX(Montants;PETITE.VALEUR(SI(Code=$G$3;LIGNE(INDIRECT("1:"&LIGNES(Code))));LIGNES($G$3:$G3)))
0
PVLV Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ton aide mais je ne comprends pas comment la formule peut fonctionner car je travaille sur 2 onglets : 1 onglet base de données (listing des personnes avec leur groupe et leur entité) et 1 autre onglet de restitution de l'information par entité.

Bref je t'enverrai bien mon fichier mais je ne vois pas d'icone pour les pièces jointes ...
0
Mike-31 Messages postés 18406 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

la formule fonctionne parfaitement grace aux plages nommées. Pour joindre ton fichier avec ce lien

https://www.cjoint.com/

clic sur le lien/Parcourir pour sélectionner ton fichier/Créer le lien et colle le lien généré dans un post
0
PVLV Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18406 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
0
PVLV Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
merci beaucoup pour vos réponses
0
Mike-31 Messages postés 18406 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

Je suis de retour, il est également possible de compléter la formule pour qu'elle prenne en compte la colonne Entity et Group.
Enfin tu sais que c'est possible
0
PHILOU10120 Messages postés 6445 Date d'inscription   Statut Contributeur Dernière intervention   824
 
Bonjour

Premièrement compter le nombre de personne dans le groupe
la formule ci-dessous compte en B20:B100 le nombre de fois qu'elle trouve par exemple goupe 1 (=B3)

=NB.SI($B$20:$B$100;$B$3)

cette autre formule contrôle si le numéro de la ligne est inférieur à la valeur chercher précédement, puis cherche l'index correspondant dans B20:H100 et ramène la valeur correspondantesur la ligne en colonne 2 et n'affiche rien si c'est faux



=SI(LIGNE()-5<=$B$5;INDEX($B$20:$H$100;EQUIV($B$3;$B$20:$H$100)-$BC$5+LIGNE()-5;2);"")

avec un exemple ce serait plus facile

https://www.cjoint.com/?3EDlENc1uwR
-2