Re: Recherche de valeur dans une colonne |
Titre du sujet : Re: Recherche de valeur dans une colonne par JeanMarie le 14/10/2012 18:08:22 Re... Turfman, pour la compréhension de tout le monde, il est bon de rester sur le fil de départ. Pour ce qui d'une version en passant par des colonnes intermédiaires, voici deux possibilités. Dans un premier temps, ce que je n'avais pas remarquer avec ma première formule, c'est que tu as des doublons dans la plage E6:E25. cela va provoquer un problème, il faut donc neutraliser les valeurs ces doublons pour éviter de les avoir plusieurs fois dans la colonne G. On peut le faire de plusieurs manières. En voici une, formule à mettre en I6 et glisser vers le bas =SI(E6;SI(NB.SI(E$5:E5;E6);"";E6);"") =NB.SI(C$6:C$15;I6) Comme écrit dans mon premier poste, on utilise la fonction EQUIV ppur rechercher la position du premier 1 dans la plage. Formule en K6 =EQUIV(1;J6:J25;0) En formule à mettre en J7, et glisser vers le bas =EQUIV(1;DECALER(J$6:J$25;SOMME(K$6:K6););0) Avec la fonction INDEX on récupère la valeur, formule à mettre en L6 =SI(ESTNA(K6);"";INDEX(E$6:E$25;K6;1)) =SI(ESTNA(K7);"";INDEX(E$6:E$25;SOMME(K$6:K7);1)) Tu verras à la longue que le départ conditionne les fonctions que tu devras utiliser pour résoudre un problème. Rechercher la même valeur 1 pose des problèmes, et si l'on indexait la série de 0 et de 1 .... Voici une autre solution. Pour commencer à la fin de ton tableau B, met un " " (espace) en E26. Pour cette solution, on va repartir des valeurs de ton tableau B sans les doublons, donc ce qu'il y a dans la plage I6:I25. Formule en N5 et glisser vers le bas =SI(NB.SI(C$6:C$15;I6);LIGNE(A1);21) Ta plage de ton tableau B contient 20 lignes, et je t'ai fais mettre un espace la la 21 ligne de ce tableau, cette servira de gestion d'erreur. Pour ce qui est de la formule avec INDEX en Q6, et glisser vers le bas. =INDEX(E$6:E$26;PETITE.VALEUR(N$6:N$25;LIGNE(A1));1) La fonction LIGNE(A1) retourne le numéro de la ligne de la référence de la cellule. cela évite de changer l'incrément dans la fonction PETITE.VALEUR La fonction PETITE.VALEUR retourne la énième plus petite valeur de la plage en référence. Cela permet de faire un tri croissant... Turfman tu as donc deux solutions sans utilisation de formules matricielles. @+Jean-Marie |
Forums