Formule complèxe EXCEL

Résolu/Fermé
EXCELLENT - 31 janv. 2011 à 17:59
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 - 31 janv. 2011 à 22:11
Bonjour,

Après m'être tortillé les neurones sur une formule EXCEL, il m'affiche un message comme quoi ma formule est trop longue :(

=SI(B22<301;B22*3;SI(ET(B22>301;B22<1920);B22*2);SI(ET(B22>1921;B22<3360);B22/2))

En gros, je souhaite que ma formule calcul un montant compris entre plusieurs montant :
Si x est compris entre 0 et 301 alors multiplie x par 3 et si x est compris entre 301 et 1920 alors multiplie x par 2 et si x est compris entre 1921 et 3360 alors multiplie x par 0.5. Tout en cumulant les montants précédemment multipliés....Vous me suivez? :)

Ma formule est bonne (je pense) mais elle est trop longue selon excel...alors avez-vous une autre suggestion de formule plus courte pour ce type de calcul?

MerKi!!!


A voir également:

14 réponses

tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 647
31 janv. 2011 à 18:05
Salut,

tu as une petite erreur dans la formule.
recopie celle-ci et dis moi si elle fonctionne :
=SI(B22<301;B22*3;SI(ET(B22>301;B22<1920);B22*2;SI(ET(B22>1921;B22<3360);B22/2)))
0
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 647
31 janv. 2011 à 18:08
complément :
dans ta formule, certaines valeurs ne sont pas prises (301, 1920 et 1921).
je ne sais pas si c'est normal ou pas. mais si elles doivent être prises en compte, penses à utiliser des signes "<=" ou ">=" au lieu des simples "<" et ">". à utiliser judicieusement selon ce que tu souhaites faire!
0
Oui, je souhaiterai que ces valeurs soient prises en comptent pour faire un cumul de l'ensemble. Je vais suivre ton conseil! Merci :)
0
Merci pour ta réponse, je vais essayer de suite :)
0
Yessssss ca marche !!!! Merci beaucoup, seul petit Bémol, le résultat voulu n'est pas le bon, mais je vais peaufiner ca !! Merci encore

Au fait où était l'erreur?? :s
0
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 647
31 janv. 2011 à 18:16
en fermant la parenthèse du 2ème SI, ça faisait que le premier SI avait 4 arguments! et ça Excel il n'aime pas parce que ce n'est pas possible! d'où le message d'erreur.
ce n'était pas que la fonction était trop longue mais qu'elle avait trop d'arguments.

autre complément :
tu n'as pas mis le dernier argument pour le 3ème SI. ça ne pose pas de problème en soit, mais cela dépend de ce que tu veux qu'Excel te fasse. à toi de voir!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bouhhhh quelle étourderie... Merci pour ton aide! Post Résolu :)
0
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 942
31 janv. 2011 à 18:27
Salut le forum

Si tu es sous EXCEL 2003 et pense atteindre la limite des 7 SI imbriquées
=B22*INDEX({3;2;0,5;#N/A};EQUIV(B22;{0;301;1921;3361};1))

Mytå
0
Euuuuuhhh Je ne comprends pas trop ta formule mais je vais essayer..:)
0
Effectivement, j'obtiens le même résultat, cependant comme je l'ai cité plus haut, le résultat n'est pas celui que je j'attendais car il ne cumul pas les précédents arguments mais thibouhh a bien éclairer mes lanternes, merci quand même, surtout que je ne connaissais pas ce type d'arguments sous excel (Index, EQUIV)
0
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 942
31 janv. 2011 à 18:42
Re le forum

Pour 301 tu veux avoir 300 * 3 + 1 * 2 soit 902 c'est bien cela

A te relire
Mytå
0
Re... pour simplifier, un exemple sera parfait :
j'ai une cellule (B22) qui contient un total : 2200 et je souhaite qu'excel calcul de cette façon ce résultat : si B22 est compris entre 0 et 300, multiplie ce résultat par 3 + sil le résultat est compris entre 301 et 1920 multiplie ce résultat par 2. ce que je souhaite avoir comme résultat final sous forme algébrique 300*3 +1920*2 = 4740
soit une valeur dans la cellule B25 => 4740
0
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 647
31 janv. 2011 à 18:23
ah ça arrive des fois, personne n'est parfait!
de rien ^^
ciao ;-)
0
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 942
31 janv. 2011 à 18:30
Salut le forum

Une alternative si le nombre de conditions risque d'être élevés
=B22*INDEX({3;2;0,5;#N/A};EQUIV(B22;{0;301;1921;3361};1))

Mytå
0
Effectivement, j'obtiens le même résultat, cependant comme je l'ai cité plus haut, le résultat n'est pas celui que je j'attendais car il ne cumul pas les précédents arguments mais thibouhh a bien éclairer mes lanternes avec les arguments("<=" ou ">=") , merci quand même, surtout que je ne connaissais pas ce type d'arguments sous excel (Index, EQUIV)
0
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 647
31 janv. 2011 à 20:07
avec ton exemple, 2200 est aussi compris entre 1920 et 3360, donc le résultat devrait être =300*3+1920*2+3360*0.5=6420
ou as-tu oublié de préciser quelque chose?!

je tente quand même une solution :
=SI(ET(B22>=0;B22<=300);300*3;SI(ET(B22>=301;B22<=1920);300*3+1920*2;SI(ET(B22>=1921;B22<=3360);300*3+1920*2+3360*0,5)))
0
OUi, l'exemple utilisé a été diminué volontairement car je ne voulais pas embrouiller les esprits, mais la dernière formule que tu as posté correspond exactement au résultat voulu ! Chapeau bas ! :)

Merci bcp
0
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 647
31 janv. 2011 à 22:02
tout est ok alors?
si c'est OK, on peut passer la discussion en résolu?
0
Oui biensur, mais la discussion est déjà en résolu
0
Euh bizarre, je l'avais mis en résolu...Et ce n'est plus proposé en haut du post...
0
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 647
31 janv. 2011 à 22:11
je l'avais changé en non résolue comme tu avais encore une question.
t'inquiète je vais la passer en résolue.
bonne soirée ;-)
0