Recherchev de plusieurs cellules aux m critèr

Résolu/Fermé
PVLV Messages postés 4 Date d'inscription mardi 29 mai 2012 Statut Membre Dernière intervention 29 mai 2012 - 29 mai 2012 à 09:18
Mike-31 Messages postés 18317 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 29 mai 2012 à 18:42
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.

8 réponses

Mike-31 Messages postés 18317 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
29 mai 2012 à 10:07
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 mardi 29 mai 2012 Statut Membre Dernière intervention 29 mai 2012
29 mai 2012 à 10:48
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 18317 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
29 mai 2012 à 10:51
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 mardi 29 mai 2012 Statut Membre Dernière intervention 29 mai 2012
29 mai 2012 à 11:05
0

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

Posez votre question
Mike-31 Messages postés 18317 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
29 mai 2012 à 11:22
0
PVLV Messages postés 4 Date d'inscription mardi 29 mai 2012 Statut Membre Dernière intervention 29 mai 2012
29 mai 2012 à 17:27
merci beaucoup pour vos réponses
0
Mike-31 Messages postés 18317 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
29 mai 2012 à 18:42
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 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 796
29 mai 2012 à 11:30
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