Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

recherche complexe

  • Initiateur de la discussion Initiateur de la discussion tomvar83
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

tomvar83

Guest
Bonjour à tous,

Un problème de recherche récalcitrant, ça vous tente ?

En pièce jointe, le fichier test.
Page 1 : une liste de personnes auxquelles est affecté un code (limité à P3 et P4 pour l'exemple)
Page 2 : une série d'échelles contenant des blocs de n cellules sur 3 colonnes.
Le but recherché : alimenter automatiquement, par exemple, le bloc P3 de la page 2 avec les personnes de la page 1 qui appartiennent au groupe P3 (voir le résultat en page 2 renseigné manuellement... pour l'instant).
La difficulté principale pour moi : la structure multi-colonnes de chaque bloc. Pour alimenter les cellules du bloc, j'imagine qu'il faut passer par une macro ?

Reconnaissance éternelle à qui trouvera la solution.

Merci d'avance !!!
 
Re : recherche complexe

Oups, aurais-je loupé l'attachement de la pièce jointe ??
Je viens de comprendre : ficier de 60 Ko, donc au-delà de la limite autorisée!!!
Je poste une version allégée.
Comme tu l'auras compris, il s'agit de remplir automatiquement les blocs P1 à P5 à partir de la liste des affectations...

Merci pour ta patience, Bruno M45 😀

______________________________________

Dis-donc, c'est vrai qu'il a l'air énervé, Helmut !🙂
 

Pièces jointes

Re : recherche complexe

Bonjour tomvar, salut Bruno,

Une solution avec une formule matricielle :

en E3 :

Code:
=SI((LIGNE()-3)*3+COLONNE()-4>NB.SI($C$3:$C$17;$E$2);"";
INDEX($B:$B;PETITE.VALEUR(SI(($C$3:$C$17=$E$2)*LIGNE($C$3:$C$17)<>0;
($C$3:$C$17=$E$2)*LIGNE($C$3:$C$17));(LIGNE()-3)*3+COLONNE()-4)))

en E9, sa petite soeur :

Code:
=SI((LIGNE()-9)*3+COLONNE()-4>NB.SI($C$3:$C$17;$E$8);"";
INDEX($B:$B;PETITE.VALEUR(SI(($C$3:$C$17=$E$8)*LIGNE($C$3:$C$17)<>0;
($C$3:$C$17=$E$8)*LIGNE($C$3:$C$17));(LIGNE()-9)*3+COLONNE()-4)))

en E15, son autre soeur jumelle :

Code:
=SI((LIGNE()-15)*3+COLONNE()-4>NB.SI($C$3:$C$17;$E$14);"";
INDEX($B:$B;PETITE.VALEUR(SI(($C$3:$C$17=$E$14)*LIGNE($C$3:$C$17)<>0;
($C$3:$C$17=$E$14)*LIGNE($C$3:$C$17));(LIGNE()-15)*3+COLONNE()-4)))

Il s'agit de formules matricielles, ce qui signifie qu'elles doivent être validées par CTRL + MAJ + ENTREE

Ensuite, les recopier dans chaque tableau vers la droite et vers le bas.

@+
 
Re : recherche complexe

Merci à vous, Tibo et Monique, pour ces réponses rapides et pertinentes, je suis très impressionné.

Je vais m'atteler à déchiffrer vos deux formules pour en comprendre la structure et les adapter à mon problème réel (je n'ai aucune expérience des fonctions matricielles d'Excel, hélas...).

Merci aussi à Bruno45, le premier à avoir relevé le gant !

Je ne peux pas terminer sans le répéter : bravo et merci à tous
 
Re : recherche complexe

Bonjour à tous,

Une question à Monique, sans vouloir abuser...
Dans la seconde formule proposée, quel est le rôle de la colonne "I" ?

Merci d'avance !
 
Re : recherche complexe

Bonjour,

C'est pour une condition
on veut la liste des noms à condition que
SI(NB.SI($H$3:H3;$B$3:$B$23)=0
Si j'ai utilisé la colonne H, c'est pour que la formule soit "recopiable" sur tout le petit tableau
En I2 , c'est $H$3:H3
En J2 , ça devient $H$3:I3
En I3, ça devient $H$3:H4

Idem ici, c'est une condition qui démarre en I2:K2, la ligne du dessus
SI(NB.SI($I$2:$K2;$B$3:$B$23)=0
 
Re : recherche complexe

Ca y est !!
Grâce à toi, Monique, mon tableau fonctionne parfaitement.
Merci mille fois pour ta compétence et ta gentillesse.

A charge de revanche, bien sûr, si mes modestes moyens me le permettent

Encore merci pour tout.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…