XL pour MAC Recherche valeurs avec plusieurs conditions lignes et colonnes

clineM

XLDnaute Junior
Bonjour, je cherche a extraire dans une nouvelle feuille les données de cellules remplissant 3 conditions.
Ma formule fonctionne pour la première ligne mais pas pour les suivantes. Il ya quelque chose qui m'échappe.
Et si je peux me permettre dans la ligne 1 de mon deuxième feuille je souhaite rajouter une condition à la formule.
Merci d'avance
 

Pièces jointes

  • exemple.xlsx
    27.6 KB · Affichages: 20

clineM

XLDnaute Junior
C'est la formule classique d'une liste conditionnelle.
=SIERREUR(INDEX(data!$C$3:$T$3;PETITE.VALEUR(SI((data!$C$4:$T$4<>1)+(GAUCHE(data!$C$3:$T$3;4)="blet");COLONNE($C$4:$T$4)-2);COLONNES($A:A)));"")

sierreur() quand il n'y a plus rien a trouver.

(data!$C$4:$T$4<>1)+(GAUCHE(data!$C$3:$T$3;4)="blet")
Conditions de recherche
COLONNE($C$4:$T$4)-2) index de plage de recherche
On est dans une formule matricielle
la condition va donner une matrice genre {vrai;vraii;faux;vrai; etc...} en fonction des valeurs de la ligne 3 et de la ligne 4
COLONNE($C$4:$T$4)-2)
ça te donne aussi une matrice {3;4;5;etc..}-2==>{1;2;3;etc..}
tout ça avec la condition te donne aussi une matrice {faux;2;faux;faux;5; etc...)
donc, pour avoir la 1 ère valeur qui a été trouvée (2 dans mon exemple), je recherche la première petite valeur
Cette première petite valeur , c'est petite.valeur(matrice;rang)==>2
Donc la valeur cherchée est index(plage;2).
comme j'étire la colonne a droite, il faut que le rang change a chaque cellule.
C'est le rôle de colonnes($a:a) (tu remarques la place des $) qui devient colonnes($a:b) dans la cellule consécutive.
On tire jusqu’à épuisement, le sierreur donnant un "" quand il n'y a plus rien, (d'ou valeur!)
Voili,Voilou!
Si tu voulais la liste en colonne, on aurait utilisé ligne() et lignes(), a la place de colonne.
Potasse petite.valeur() dans l'aide, ligne() et colonnes()


Crdlmt
Bonjour, comment modifier le code si je ne veux que les noms d'échantillons pour lesquels dilution est différent de 1 ?
 

clineM

XLDnaute Junior
La c'est le cas !
data!$C$4:$T$4<>1

si tu voulais seulement ceux =2, tu aurais comme condition :
SI((data!$C$4:$T$4=2)+(GAUCHE(data!$C$3:$T$3;4)="blet");


Crdlmt
Bon je suis quiche mais je n'y arrive pas, j'ai passé mon aprem dessus j'avais bien commencé par supprimé juste +(GAUCHE(data!$C$3:$T$3;4)="blet") mais ça ne veut vraiment pas !!! je vais potasser les fonctions ... ça m'ennerve car avec mes moyens j'y arrive mais j'ai une colonne vide quand j'ai le blet que je ne veux pas au lieu d'avoir les données décalées qui commence par Bl1!!!!
 

djidji59430

XLDnaute Barbatruc
C'est une formule matricielle, donc a valider par
Maj+Ctrl+Entrée (les 3 doigts en même temps) pour faire apparaitre les accolades.
Elle doit s'afficher automatiquement entre accolades dans la barre de formule, et être re-validée de la même façon à chaque fois qu'on y touche.
 

Discussions similaires

Statistiques des forums

Discussions
315 127
Messages
2 116 538
Membres
112 773
dernier inscrit
claire3651