XL pour MAC Recherche valeurs avec plusieurs conditions lignes et colonnes

clineM

XLDnaute Nouveau
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

M12

XLDnaute Accro
Bonjour,
Teste cette formule si j'ai compris (A valider en matricielle)
VB:
=SIERREUR(INDEX(data!$C$5:$CG$342;EQUIV($A2&$A$1;data!$A$5:$A$342&data!$B$5:$B$342;0);EQUIV(B$1;data!$C$3:$CG$3;0));"")
 

djidji59430

XLDnaute Barbatruc
Bonjour à tous,

Elle fonctionne tres bien ta formule, sauf que tu as oublié de mettre des $ pour figer les plages de recherche.
maintenant 2è m question :
VB:
Ici je souhaite rajouter la condition et s i cellule e la ligne 3 contient blet (car ici la condition cellule de la ligne 4 >1 n'est pas valide)
Tu peux développer ?


Crdlmt
 

clineM

XLDnaute Nouveau
Bonjour à tous,

Elle fonctionne tres bien ta formule, sauf que tu as oublié de mettre des $ pour figer les plages de recherche.
maintenant 2è m question :
VB:
Ici je souhaite rajouter la condition et s i cellule e la ligne 3 contient blet (car ici la condition cellule de la ligne 4 >1 n'est pas valide)
Tu peux développer ?


Crdlmt
pour obtenir la ligne 1 de la feuille CPS à partir de B1 : je souhaite récupérer les name (ligne 3 de data) qui remplissent les conditions : dilution (ligne4 de data) >1 ou name contient "blet" (car blet systématiquement dilution =1)
 

clineM

XLDnaute Nouveau
Bonjour à tous,

Elle fonctionne tres bien ta formule, sauf que tu as oublié de mettre des $ pour figer les plages de recherche.
maintenant 2è m question :
VB:
Ici je souhaite rajouter la condition et s i cellule e la ligne 3 contient blet (car ici la condition cellule de la ligne 4 >1 n'est pas valide)
Tu peux développer ?


Crdlmt
punaise j'ai tout essayé avec ces $ .... grr prise de tête. Du coup qu'est-ce qu'apporte le sierreur ?
 

djidji59430

XLDnaute Barbatruc
Et pour l'autre question, je dois etre trop vieux !
Je n'ai toujours rien compris .....
Tu sais de quoi tu parles, moi pas !
tu veux la liste de c3 à q3 ?

ou name contient "blet" (car blet systématiquement dilution =1) donne des exempels


Crdlmt
 

clineM

XLDnaute Nouveau
Et pour l'autre question, je dois etre trop vieux !
Je n'ai toujours rien compris .....
Tu sais de quoi tu parles, moi pas !
tu veux la liste de c3 à q3 ?

ou name contient "blet" (car blet systématiquement dilution =1) donne des exempels


Crdlmt
Je vais essayer de le formuler autrement:
je veux éliminer les résultats pour les échantilons (noms en ligne 3) dont la dilution (en ligne4) est =1 sauf les noms (ligne3) contenant "blet" donc je dois avoir sur la feuille CPS la liste de nom Blet0, Blet1 ... BC0 BC1 BC2 ...
 

djidji59430

XLDnaute Barbatruc
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
 

Discussions similaires

Réponses
4
Affichages
316
Haut Bas