Combiner recherchev et grande.valeur

Lutticat

XLDnaute Nouveau
Bonjour à tous,
et merci d'avance pour votre aide si mon problème à une solution !
Je furete un peu partout mais je ne trouve rien qui réponde clairement à mon problème/
Je m'arrache les cheveux sur la problématique suivante :
Soit un tableau de A1:AJ15
en ligne 1 : les en-tête
en A:A : les valeurs de références
en B2:AH15 : les valeurs à récupérer.

L'idée est la suivante :
je cherche en A:A une valeur (recherchev ?)
sur la ligne de cette valeur (jusqu'à Ah15) je veux récupérer la grande.valeur 2

Puis dans une autre case récupérer l'en-tête de colonne correspondant à cette grande valeur

Pb : comme le tableau source des infos est le résultat d'une requête sql, je ne peux le convertir ou le travailler sans perdre l'avantage d'une formule qui calcule automatiquement sans étapes intermédiaires.

Pouvez vous m'aider ?
Je joins un fichier Excel pour exemple.
Un grand merci par avance
 

Pièces jointes

  • Classeur1.xlsx
    14.5 KB · Affichages: 89
  • Classeur1.xlsx
    14.5 KB · Affichages: 79
  • Classeur1.xlsx
    14.5 KB · Affichages: 79
Dernière édition:

vgendron

XLDnaute Barbatruc
Re : Combiner recherchev et grande.valeur

Salut,
j'ai un début de réponse:

Pour rechercher la valeur située en E19 dans ta colonne A
=EQUIV(E19;A2:A15;0)
te renvoie la position de cette valeur. donc te donne l'indice de la ligne (1 dans ton exemple) dans laquelle tu dois appliquer grande valeur..
ce qui me manque (comme bien souvent en fait), c'est comment dire à Grande.valeur que la matrice de recherche est B1:AH1

j'ai bien essayé de "construire" cette référence avec ="B"&EQUIV(E19;A2:A15;0)&":AH" &EQUIV(E19;A2:A15;0)
ce qui me renvoit bien B1:AH1.
sauf que quand je l'intègre dans grande.valeur... il aime pas...
=GRANDE.VALEUR("B"&EQUIV(E19;A2:A15;0)&":AH" &EQUIV(E19;A2:A15;0);2)
 

Gurgeh

XLDnaute Occasionnel
Re : Combiner recherchev et grande.valeur

Salut Lutticat, vgendron,

Tu peux utiliser la fonction DECALER pour te renvoyer une plage de cellules dépendant de ce qu'a trouvé la fonction EQUIV.

Etape 1 : on trouve la ligne correspondant à la valeur en E19 : =EQUIV(E19;A2:A15;0)
Etape 2 : on utiliser la fonction DECALER pour renvoyer la ligne de valeur correspondant à cette ligne : DECALER(B1:AH1;ligne de la valeur en E19;0)
Etape 3 : on utiliser GRANDE.VALEUR pour trouver la 2ème plus grande valeur : GRANDE.VALEUR(zone renvoyée par DECALER;2)
Etape 4 : on utiliser EQUIV pour trouver la colonne correspondant à la 2ème plus grande valeur =EQUIV(2ème plus grande valeur;zone renvoyée par DECALER;0);0)
Etape 5 : on utiliser INDEX pour trouver le nom de la colonne correspondante =INDEX(B1:AH1;1;colonne de la 2ème plus grande valeur)

Finalement, ça donne ça :
=INDEX(B1:AH1;1;EQUIV(GRANDE.VALEUR(DECALER(B1:AH1;EQUIV(E19;A2:A15;0);0);2);DECALER(B1:AH1;EQUIV(E19;A2:A15;0);0);0))

Voir fichier joint !

Gurgeh
 

Pièces jointes

  • Classeur1.xlsx
    14 KB · Affichages: 186
  • Classeur1.xlsx
    14 KB · Affichages: 105
  • Classeur1.xlsx
    14 KB · Affichages: 120

vgendron

XLDnaute Barbatruc
Re : Combiner recherchev et grande.valeur

Salut Gurgeh

suis je c... evidemment. la fonction decaler..
pourquoi n'y ai je pas pensé. sans doute parce que j'ai l'habitude de décomposer mes formules, membre par membre.. et qu'en faisant ca.. la fonction décaler toute seule me renvoie 0.. alors que j'espérai voir directement l'adresse de la plage..(B6:AH6)

en tout cas. merci
 

Lutticat

XLDnaute Nouveau
Re : Combiner recherchev et grande.valeur

Bonjour et merci pour votre contribution,
Du coup sur un autre forum, on m'a proposé une solution alternative qui marche aussi :
I20 étant la valeur cherchée
Pour rechercher la grande valeur :=GRANDE.VALEUR(INDEX(B2:AH15;EQUIV(I20;A2:A15;0););2)
Pour rechercher l'en-tête : =INDEX(B1:AH1;;EQUIV(GRANDE.VALEUR(INDEX(B2:AH15;EQUIV(I20;A2:A15;0););2);INDEX(B2:AH15;EQUIV(I20;A2:A15;0););0))

Ces formules fonctionnent aussi bien que les votres.
Un grand merci à tous
 

Discussions similaires

Statistiques des forums

Discussions
312 193
Messages
2 086 062
Membres
103 110
dernier inscrit
Privé