XL 2010 Extraire des réponses multiples d'une matrice horizontale

Micke-31

XLDnaute Occasionnel
Bonjour le forum,

J'essaye vainement d'adapter une l'excellente formule matricielle de Boisgontier,
=SI(LIGNES($1:1)<=NB.SI($D$2:$D$11;1);INDEX($C$2:$C$11;PETITE.VALEUR(SI($D$2:$D$11=1;LIGNE(INDIRECT("1:"&LIGNES($D$2:$D$11))));LIGNES($1:1)));"")
lorsque la matrice est verticalement aucun problème même pour transposer les résultats comme vous pourrez le voir sur le fichier joint.
Par contre les données reçues sont horizontales et je n'arrive pas à obtenir le résultat souhaité.
merci à tous ceux qui prendront le temps de lire ma demande et peut être apporter leur savoir
 

Pièces jointes

  • Classeur1.xlsx
    11.3 KB · Affichages: 7

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Formule à base de sierreur et agregat.
En colonne
=SIERREUR(INDEX($M$4:$R$4;AGREGAT(15;6;COLONNE($M$3:$R$3)-COLONNE($M$3)+1/($M$3:$R$3=$M$11);COLONNE(M3:R3)-COLONNE($M$3)+1));"")
En Ligne
=SIERREUR(INDEX($M$4:$R$4;;AGREGAT(15;6;COLONNE($M$3:$R$3)-COLONNE($M$3)+1/($M$3:$R$3=$M$11);LIGNE(1:1)));"")

Cordialement
 

Pièces jointes

  • Classeur1.xlsx
    18.3 KB · Affichages: 3

Dugenou

XLDnaute Barbatruc
Bonjour,
Dans la matrice pour petite valeur, il faut afficher un N° de colonne , pour me simplifier la vie (le calcul sur les lettres pour les colonnes dans le indirect ne serait pas simple, j'ai écrit : =SI(COLONNE(A:A)<=NB.SI($L$3:$T$3;$M$11);INDEX($A$4:$T$4;PETITE.VALEUR(SI($L$3:$T$3=$M$11;COLONNE($L:$T));COLONNE(A:A)));"")

Voir fichier joint
Cordialement

PS désolé pour la réponse tardive et coucou maître Hasco !
 

Pièces jointes

  • Micke 31.xlsx
    12.2 KB · Affichages: 4

Hasco

XLDnaute Barbatruc
Repose en paix
Re, le fil
Bonjour @Dugenou

cette réponse qui en plus n'est pas matricielle
C'est un des avantage de la formule Agregat qui permet d'appliquer des fonctions à des matrices sans avoir à valider par CTRL+MAJ+ENTREE

Voici adaptée à votre premier tableau.
En colonne C vous en verrez un modèle (plus simple) qui en même temps ressort les données triées.
=SIERREUR(AGREGAT(15;6;$C$3:$C$8/($B$3:$B$8=$D$11);LIGNE(1:1));"")

cordialement
 

Pièces jointes

  • Classeur1.xlsx
    18.2 KB · Affichages: 2

Discussions similaires