• 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,

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.
Retour