formule excel avec plusieurs conditions

S

sinama

Guest
bonjour,

N'etant pas trés doué pour crée une macro sous VB, je souhaite créer une formule conditionelle imbriquant plus de 7 fonctions.
exemple avec 7 fonctions imbriquée

=SI(H3="pomme";5;SI(H3="poire";1;SI(H3="peche";10;SI(H3="abricot";0;SI(H3="prune";25;SI(H3="groseille";1;SI(H3="orange";5;SI(H3="mûre";5))))))))

j'ai 27 conditions soit 27 fonctions à imbriquer.

D'avance merci de votre aide.

Fred
 

Modeste

XLDnaute Barbatruc
Re : formule excel avec plusieurs conditions

Bonsoir Barbuz,

Il y a en fait deux manières de procéder (au moins, devrais-je dire :rolleyes:)
- la première est d'appliquer une Mise en Forme Conditionnelle, pour faire en sorte que la police des messages d'erreur en question soit blanche (ou, en tout cas, de la même couleur que le remplissage des cellules). Le "ton sur ton" les rend moins visibles
- la seconde est d'allonger un brin la formule pour gérer ces erreurs et les remplacer par une chaîne de texte vide

Dans les deux cas, il faudrait que tu précises quelle version d'Excel tu utilises (il ne me semble pas en avoir vu de mention et les solutions sont différentes)
 

Modeste

XLDnaute Barbatruc
Re : formule excel avec plusieurs conditions

Bonjour Barbuz, le forum,

Pas encore pu tester le 2013, mais je présume qu'en Feuil2 et A2 de ton exemple, ceci devrait fonctionner sans problème:
=SIERREUR(INDEX(Feuil1!A$1:A$10;PETITE.VALEUR(Feuil1!$E$1:$E$10;LIGNES($1:1)));"")
... à recopier ensuite "gaillardement" :rolleyes: et aussi loin que tu le veux, vers le bas et vers la droite!

PS: modifie peut-être ton profil de manière à y renseigner ta version d'Excel (la mention peut-être faite aussi au moment d'ouvrir une discussion, en "préfixant" l'objet de ladite discussion)
 
Dernière édition:

Barbuz

XLDnaute Nouveau
Re : formule excel avec plusieurs conditions

Alors, j'ai encore une question.
Cette fois, c'est mon tableau principal que j'ai changé de place.
Du coup, la formule n'a plus fonctionné.
C'est seulement quand j'ai changé la formule intermédiaire en =SI(B12="Oui";LIGNE(B1);"") que ça a à nouveau fonctionné.
Mais pourquoi ?...
 

Pièces jointes

  • Index.xlsx
    12.2 KB · Affichages: 29
  • Index.xlsx
    12.2 KB · Affichages: 30
  • Index.xlsx
    12.2 KB · Affichages: 29

Modeste

XLDnaute Barbatruc
Re : formule excel avec plusieurs conditions

Salut,

Je ne fais que passer ...
Dans la fonction INDEX de la feuille 2, le second argument est le n° de ligne (fourni par la formule "intermédiaire" de la feuille1). Ce n° de ligne est le n° de ligne de la plage renseignée en premier argulent de la fonction INDEX (ici: A12:A20), pas le n° de ligne dans la feuille!
Si la formule intermédiaire donne, comme plus petit n° de ligne, un 12, alors tu rechercherais la 12e ligne de la plage s'étendant de A12 à A20 ... et tu obtiendrais une erreur #REF! (il n'y a pas 12 lignes dans cette plage!) C'est pour ça que ton "bidouillage" avec la formule intermédiaire fonctionne: le 1 que tu obtiens en ligne 12 est bien le n° de ligne dans la plage A12:A20, où le premier "Faisable" est à "Oui"

... Peux pas faire plus pour le moment! Par contre, toi tu peux: fais des tests sur une partie seulement de la formule. Essaie avec juste INDEX(ta_Plage; le_numéro_de_ligne_que_tu_tapes_en_dur), puis change les références de ta plage et ainsi de suite, jusqu'au moment où tu auras compris la logique. Et fais la même chose avec les autres morceaux de formules qui te semblent peu clairs; après, ce n'est plus que de l'assemblage :rolleyes:
 

Barbuz

XLDnaute Nouveau
Re : formule excel avec plusieurs conditions

Je te remercie de ces éclaircissements supplémentaires, Modeste.
J'avais en effet confondu numéro de ligne de plage renseignée en premier argument de l'INDEX et numéro de ligne dans la feuille.
Merci.
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz