Recherchev en décalé

Résolu/Fermé
Niquo Messages postés 18 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 23 mars 2009 - 19 mars 2009 à 11:08
Niquo Messages postés 18 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 23 mars 2009 - 19 mars 2009 à 14:21
Bonjour à tous et à toutes,
Je cale sur une fonction recherchev quelque peu sophistiquée. J'espère que vous pourrez venir en mon aide.

J'ai un classeur excel avec deux feuilles.
Dans la feuille 1, j'ai un tableau composé de 3 colones : Référence, produit et tarif.
La colonne référence est composée de la sorte :
Référence
REF 01
REF 01
REF 02
REF 02

La colonne Produit :
Produit A
Produit B
Produit A
Produit B

La colonne tarif :
10
20
15
30

De ce fait, pour une même référence nous avons un produit A et B avec des tarifs différents.

Dans ma seconde feuille, je souhaiterai consitué un moteur de recherche dans lequel on tapera la référence et les résultats en sortie seront les produits associés à leurs tarifs.

Pour la première ligne de produit je fais une recherchev basique mais dans la seconde ligne, étant donné que les valeurs de référence sont toujours en doublons, il me faudrait une formule avec recherchev me permettant de décaler d'une ligne les résultats.

J'espère que j'ai été clair mais je n'en suis pas sûr.


Encore un grand merci à tous ceux et toutes celles qui me consacreront un peu de leur précieux temps.

Amicalement,

Niquo

3 réponses

leplot Messages postés 191 Date d'inscription lundi 1 décembre 2008 Statut Membre Dernière intervention 13 août 2015 131
19 mars 2009 à 12:29
Bonjour

je te propose une solution matricielle (voir le site http://boisgontierjacques.free.fr/ qui développe de nombreuses techniques)

J'ai pris une zone sur 10 lignes mais il suffira de corriger (le mieux est de nommer chaque colonne)
La référence cherchée est en E1

=SI(ESTERREUR(PETITE.VALEUR(SI(A1:A10=$E$1;LIGNE(1:10));LIGNE(1:10)));"";INDEX(B1:B10;PETITE.VALEUR(SI(A1:A10=$E$1;LIGNE(1:10));LIGNE(1:10))))

Tu sélectionnes une zone de même hauteur que la liste (F1:F10 par exemple) et tu colles la formule en F2 et tu valides par MAJ+CTRL+ENTER
Tu fais de même en G en modifiant la formule avec "index(C1:C10..." pour pointer sur la troisième colonne
Si la zone fait plus de ligne, il faut corriger et remplacer tous les 10 par la valeur
par exemple pour 100 lignes
=SI(ESTERREUR(PETITE.VALEUR(SI(A1:A100=$E$1;LIGNE(1:100));LIGNE(1:100)));"";INDEX(B1:B100;PETITE.VALEUR(SI(A1:A100=$E$1;LIGNE(1:100));LIGNE(1:100))))


LePlot
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
19 mars 2009 à 13:57
Bonjour à tous,

regarde si cette maquette te convient
https://www.cjoint.com/?dvn4dDCiFJ
0
Niquo Messages postés 18 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 23 mars 2009 2
19 mars 2009 à 14:21
Merci pour vos réponses.
Et notamment à celle de Michel_m qui est la solution parfaite pour mon problème.

Belle journée à vous.
0