Changer de colonne suivant condition avec EQUIV EXCEL [RESOLU ] - VB/VBA/VBS - Programmation
Marsh Posté le 30-06-2014 à 11:10:33
il semblerait que j'ai presque trouvé mon bonheur, seulement cette formule marche pas tout le temps allez savoir pourquoi, j'ai #REF qui apparait:
=INDEX(A1:A6;MAX((B2:D6=MAX(B2:D6))*LIGNE(B2:D6)))
pourtant ici ça marche
http://forum.excel-pratique.com/ex [...] 33546.html
Marsh Posté le 30-06-2014 à 11:41:55
Si tu n'as que 2 cas (ce qui m'étonnerait puisque tu utilises une liste déroulante) :
Code :
|
Après si tu n'as pas trop de cas différents tu peux continuer en imbriquant des SI.
Colonne A : étiquettes
Colonne B : valeurs
Colonne C : autres valeurs
E1 : cellule liée à la liste déroulante
Marsh Posté le 30-06-2014 à 11:53:35
Merci de ta réponse, sinon j'ai penser à utiliser
=INDEX(Feuil3!E70:E89; EQUIV(MAX(Feuil3!G70:G89) ;Feuil3!G70:G89;0) )
et le SI j'ai envie de l'utiliser comme ça
SI ( E1 = G69:L69; Et la me récupérer les valeurs de mes colonnes)
Si E1= G69 ça me donne G70:G89
Si E2 = H69 ça me donne H70:H89
...
Comme çà je me mets ça dans mon max puis basta:
EQUIV ( MAX ( SI(...); SI(...);0)
Donc comment récupérer mes plages des colonnes ?
Marsh Posté le 30-06-2014 à 12:19:02
À ma connaissance tu ne peux pas récupérer une plage de cellules via la valeur d'une cellule si ce n'est en créant une référence à la plage.
Marsh Posté le 30-06-2014 à 13:03:28
Avec mon tableau en haut c'est pas possible?
L'idée générale c'est j'ai un menu déroulant qui choisit le type de chantier.
Et je prends le max de la colonne et je lis l'engin.
une idée?
Sinon je pars sur l'imbrication de SI
Marsh Posté le 30-06-2014 à 13:27:19
Voilà j'ai trouvé une solution :
En E1 tu as la cellule liée à la liste déroulante, en F tu as les valeurs possibles dans la liste déroulante.
Donc quand tu sélectionnes "b" ça te donne une valeur de 1, en sélectionnant "c" ça te donne 2, "d" donne 3.
En fonction de ta sélection ça change de colonne et ça trouve un résultat différent.
Marsh Posté le 30-06-2014 à 18:12:14
Chapeau le index(...;1;..):index(...;20;..) oui moi c'est 20.
Bon ben problème résolu Merci bcp.
Je laisse le post ouvert si jamais j'ai besoin d'ici cette semaine.
Encore merci
Marsh Posté le 01-07-2014 à 10:38:39
Salut, pour faire la formule précedente, j'ai fait une liste déroulante qui renvoie la position dans la celulle associée, mais je ne peux plus lire la valeur sélectionnée. Avant j'avais fait avec validation de données liste.
J'ai besoin sur ma liste type liste déroulante (bouton insérer)de lire la valeur une idée?
Edit: J'ai parlé trop vite il suffit normalement d'un INDEX()
Marsh Posté le 30-06-2014 à 10:05:45
j'utilise la formule suivante pour récupérer mon engin suivant mon max de ma colonne:
=INDEX(Feuil3!E70:E89; EQUIV(MAX(Feuil3!G70:G89) ;Feuil3!G70:G89;0) )
Ce que j'aimerai c'est de choisir ma colonne de travail en fonction d'une condition comme par exemple
=MAX(SI(A37=Feuil3!G69:L69 ;Feuil3!G70:L89))
En gros pouvoir faire la même chose avec une condition A37 (liste déoulante) sauf que EQUIV n'en veut pas même avec validation matricielle ctrl + shift + enter...
Je ne sais pas comment faire.
merci de m'aider
Message édité par ticola le 02-07-2014 à 12:35:11