URGENT! Pb de limitation de 30 conditions avec la fonction SI

  • Initiateur de la discussion Initiateur de la discussion Marc
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

Marc

Guest
Bonjour, J'ai réalisé une base de données sous exclel. Je dois rentrer certains parramètres conditionnels qui me permettent l'affichage de résultats. Limité par les 7 conditions dans une formule sous excel, je me suis reporté sur une imbrication de combinaison de formules:

=SI(ET(commande!C10=codemat!B4;commande!C16=codemat!A4);codemat!G4;SI(ET(commande!C10=codemat!B5;commande!C16=codemat!A5);codemat!G5;SI(ET(commande!C10=codemat!B6;commande!C16=codemat!A6);codemat!G6;SI(ET(commande!C10=codemat!B7;commande!C16=codemat!A7);codemat!G7;SI(ET(commande!C10=codemat!B8;commande!C16=codemat!A8);codemat!G8;SI(ET(commande!C10=codemat!B9;commande!C16=codemat!A9);codemat!G9;H10))))))

H10 en final reprenant une deuxième formule conditionnelle, et ainsi de suite....
... ben la est le problème, excel me limitant à 30 conditions à tester. Le "ET" en englobant 2. Je suis bloqué.
Y a t-il une âme charitable qui saurait me donner la solution à mon problème ? C'est urgent! Merci d'avance. Marc
 
Bonjour

Avec une formule je te supprime toutes tes conditions.

Je m'explique

CodematB est la plage des cellules codemat!B4 à Codemat!B...
CodematA est la plage des cellules codemat!A4 à Codemat!A...
CodematG est la plage des cellules codemat!G4 à Codemat!G...

la fonction =EQUIV(Commande!C10;CodematB;0), renvoi un index de ligne de la plage CodematB.

la fonction =INDEX(CodematA;indexCodematB;1) renvoi la valeur à tester à Commande!C16

si le résultat de la condition
- est vrai, il faut la fonction = INDEX(CodematG;IndexCodematB;1),
- est faux on renvoie H10

La formule avec les fonctions imbriquées.
=SI(Commande!C16=INDEX(CodematA;EQUIV(Commande!C10;CodematB;0);1);INDEX(CodematG;EQUIV(Commande!C10;CodematB;0);1);H10)

Si la valeur cherchée dans la plage CodematB est inconnue la fonction EQUIV() va renvoyée #NA, qui donnera au final la valeur en H10

En espérant avoir résolu ton problème de si, bonne journée

@+Jean-Marie
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour