[Excel] fonctions complexes

Fermé
Mousekiss - 3 févr. 2007 à 20:54
 Mousekiss - 4 févr. 2007 à 03:07
Bonjour à tous,

Je rencontre un problème lors de l'écriture d'une formule utilisant des fonctions imbriquée sous Excel.

Voici ce que je dois réaliser:

Champ1 = Euro, Dollar, Yen
Champ2 = option1, option2, option3 (--> méthodes d'arrondis différentes)
Champ3 = résultat (c'est donc ici que je dois écrire ma fonction)

J'ai déjà créé une table de valeurs où j'ai déjà effectué toutes les différentes conversions ainsi que leurs arrondis. Il ne me reste donc plus qu'à parvenir à afficher la bonne valeur dans le Champ3 en fonction de ce qui aura été choisi dans les Champ1 et Champ2.

Je connais les fonctions mais je ne parviens pas à les imbriquer sans rencontrer une erreur.

Voici un exemple de ce que je dois faire:

Si Champ1 = Euro et si Champ2 = option1 alors je récupère la valeur XYZ;
Si Champ1 = Euro et si Champ2 = option2 alors je récupère la valeur ZYX;
Si Champ1 = Euro et si Champ2 = option3 alors je récupère la valeur YXZ;
Si Champ1 = Dollar et si Champ2 = option1 alors je récupère la valeur XZY;
Si Champ1 = Dollar et si Champ2 = option2 alors je récupère la valeur ZXY;

etc etc... au total, j'ai donc neuf cas de figure différents.

Y aurait-il une âme charitable pour éclairer ma lanterne et m'aider dans l'écriture de cette formule?

Un grand merci d'avance!
A voir également:

3 réponses

Alors, personne pour m'aider? :-(((
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
4 févr. 2007 à 01:26
Bonsoir,

tu peux créer une fonction d'indexation genre :
1+3*((champ1="dollar")*1+(champ1="yen")*2)+((champ2="option2")*1+(champ2="option3")*2)


tu obtiens ainsi les valeurs 1 à 9 que tu peux alors utiliser soit dans une formule choisir(), soit dans un recherchev()

cette façon d'indexer suppose quand même que champ1 et 2 ne peuvent être vides.

pour le garantir, il faudra l'intégrer dans la formule finale :
=Si(ET(champ1<>"";champ2<>"");Choisir(1+3*((champ1="dollar")*1+(champ1="yen")*2)+(champ2="option2")*1+(champ2="option3")*2;XYZ;ZYX;YXZ;XZY;ZXY;etc....);"")


Bon courage
0
Merci pour ta réponse bien que je ne sois pas assez "calé" pour parvenir à faire ça.

Quoiqu'il en soit, je suis finalement parvenu à mes fins malgré tout.

Merci encore.
0