Liste déroulante et recherche
Résolu
Maëlle
-
Ma3ll3 -
Ma3ll3 -
Bonjour à tous,
Je souhaite à l'aide d'une liste déroulante réaliser un récapitulatif d'écart de prix, par article pour chacun de mes fournisseurs.
Pour cela, j'ai réalisé la formule conditionnelle "SI" ci-dessous qui fonctionne mais qui ne me satisfait pas à 100% :
=SI($E$8="A";RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AY");13;FAUX);)&SI($E$8="B";RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AY");20;FAUX);)&SI($E$8="C";RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AW");27;FAUX);)&SI($E$8="D";RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AY");34;FAUX);)&SI($E$8="E";RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AY");41;FAUX);)&SI($E$8="F";RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AY");48;FAUX);)
J'ai un total de 6 fournisseurs et je dois effectuer mes recherches V dans 4 onglets différents d'où la mise en place de fonctions indirects.
Je voulais savoir s'il existe une formule plus simple pour réaliser cette tâche ?
Merci d'avance pour votre aide.
Je souhaite à l'aide d'une liste déroulante réaliser un récapitulatif d'écart de prix, par article pour chacun de mes fournisseurs.
Pour cela, j'ai réalisé la formule conditionnelle "SI" ci-dessous qui fonctionne mais qui ne me satisfait pas à 100% :
=SI($E$8="A";RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AY");13;FAUX);)&SI($E$8="B";RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AY");20;FAUX);)&SI($E$8="C";RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AW");27;FAUX);)&SI($E$8="D";RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AY");34;FAUX);)&SI($E$8="E";RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AY");41;FAUX);)&SI($E$8="F";RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AY");48;FAUX);)
J'ai un total de 6 fournisseurs et je dois effectuer mes recherches V dans 4 onglets différents d'où la mise en place de fonctions indirects.
Je voulais savoir s'il existe une formule plus simple pour réaliser cette tâche ?
Merci d'avance pour votre aide.
1 réponse
-
Bonjour,
On peut nettement identifier une série dans tes numéros de colonnes.
13/20/27/34/41/48 .
soit 7*2-1 ; 7*3-1 ...
En partant de ce schéma=RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AY");13;FAUX)
peut aussi s'écrire : grace au code ascii des lettres=CODE(MAJUSCULE(E8))
-64 te donne 1 si E8 = A , 2 si E8 = B ...
d'où=CODE(MAJUSCULE(E8))-63
te donne 2 pour A , 3 pour B ...
On obtient alors :=RECHERCHEV(B399;INDIRECT("'"&$L$14&"'!B:AY");7*(CODE(MAJUSCULE(E8))-63)-1;FAUX)
Cordialement,
Nos seules limites sont celles que nous nous imposons nous-même.
La politesse et un merci ne tuent pas. Il existe un bouton pour "Résolu" pour confirmer que votre problème n'en est plus un. Fahora