XL 2019 Recherche une valeur dans une feuille et renvois à la valeur adjacente

chlo47

XLDnaute Nouveau
Bonjour,

Je cherche à trouver une valeur dans une feuilles excel (ou un grand tableau), peut importe la ligne et la colonne, ensuite j'ai besoin d'extraire l'adresse de la case (colonne n et ligne n) où se trouve cette valeur pour obtenir le numéro de colonne et afficher la valeur adjacente à ma valeur recherchée (colonne n+1 et ligne n).

Concrètement voici mon problème (fichier d'exemple en pièce jointe) : j'ai des listes de tailles différentes dans plusieurs colonnes différentes (ici, Fruits ; Légumes ; Viande ; Féculent), ce sont mes colonnes de base, à chaque fois j'ai deux colonnes avec des valeurs associées aux items de la colonne de base (ici les colonnes Quantité et Catégorie). Je cherche un mot se situant dans une des colonne de base (case jaune) et ensuite je veux afficher la valeur de Quantité et la valeur de Catégorie associées.

Pour info : le fichier est un exemple, le fichier original contient plus de 250 colonnes et jusqu'à 900 lignes pour certaines catégorie donc je ne peux pas modifier l'anatomie de mes valeurs.

Je ne sais pas si j'ai été très claire, j'ai l'impression que ce n'est pas compliqué mais je n'ai rien trouvé dans mes connaissances ou sur internet concernant ce sujet (je cherche une formule, pas un code VBA).
Je vous remercie d'avance pour votre aide.
 

Pièces jointes

  • Exemple1.xlsx
    9.4 KB · Affichages: 9
Dernière édition:
Solution
Bonjour,
Par exemple à tester en P2 :
Code:
=INDEX($A$1:$L$10;MIN(SI($A$1:$L$10=$P$1;LIGNE($A$1:$L$10);""));MIN(SI($A$1:$L$10=$P$1;COLONNE($A$1:$L$10);""))+1)
en P3 :
Code:
=INDEX($A$1:$L$10;MIN(SI($A$1:$L$10=$P$1;LIGNE($A$1:$L$10);""));MIN(SI($A$1:$L$10=$P$1;COLONNE($A$1:$L$10);""))+2)

Edit : Formules matricielles à valider par Ctrl+Maj+Entrée, elle se mettent alors automatiquement entre accolades {}

Cordialement

ALS35

XLDnaute Occasionnel
Bonjour,
Par exemple à tester en P2 :
Code:
=INDEX($A$1:$L$10;MIN(SI($A$1:$L$10=$P$1;LIGNE($A$1:$L$10);""));MIN(SI($A$1:$L$10=$P$1;COLONNE($A$1:$L$10);""))+1)
en P3 :
Code:
=INDEX($A$1:$L$10;MIN(SI($A$1:$L$10=$P$1;LIGNE($A$1:$L$10);""));MIN(SI($A$1:$L$10=$P$1;COLONNE($A$1:$L$10);""))+2)

Edit : Formules matricielles à valider par Ctrl+Maj+Entrée, elle se mettent alors automatiquement entre accolades {}

Cordialement
 

chlo47

XLDnaute Nouveau
Bonjour,
Par exemple à tester en P2 :
Code:
=INDEX($A$1:$L$10;MIN(SI($A$1:$L$10=$P$1;LIGNE($A$1:$L$10);""));MIN(SI($A$1:$L$10=$P$1;COLONNE($A$1:$L$10);""))+1)
en P3 :
Code:
=INDEX($A$1:$L$10;MIN(SI($A$1:$L$10=$P$1;LIGNE($A$1:$L$10);""));MIN(SI($A$1:$L$10=$P$1;COLONNE($A$1:$L$10);""))+2)

Edit : Formules matricielles à valider par Ctrl+Maj+Entrée, elle se mettent alors automatiquement entre accolades {}

Cordialement
Merci beaucoup ! C'est ce qu'il me fallait !
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,

Une autre manière de faire qui :
  • tient compte d'éventuels doublons
  • permet de ne pas taper les valeurs recherchées mais de les choisir dans une liste déroulante
On utilise une colonne auxiliaire qui a pour avantage de simplifier les autres formules et de réduire les re-calculs par Excel.

La formule en N2 est une formule matricielle à valider par la combinaison des trois touches Ctrl+Maj+Entrée.
les formules de M2 à P2 sont des formules normales.
Il suffit de recopier les formules N2 à P2 suffisamment loin vers le bas.

La zone utile des données (à partir de de la cellule A2) a été nommée "maZone" et pour l'exemple fait référence à : $A$2:$L$25.
 

Pièces jointes

  • chlo47- rechercher- v2.xlsx
    25.6 KB · Affichages: 4

Discussions similaires

Réponses
6
Affichages
108

Statistiques des forums

Discussions
312 145
Messages
2 085 759
Membres
102 965
dernier inscrit
Mael44