Formule complèxe EXCEL

Résolu
EXCELLENT -  
 Utilisateur anonyme -
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!!!


14 réponses

Utilisateur anonyme
 
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
Utilisateur anonyme
 
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
EXCELLENT
 
Oui, je souhaiterai que ces valeurs soient prises en comptent pour faire un cumul de l'ensemble. Je vais suivre ton conseil! Merci :)
0
EXCELLENT
 
Merci pour ta réponse, je vais essayer de suite :)
0
EXCELLENT
 
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
Utilisateur anonyme
 
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
EXCELLENT
 
Bouhhhh quelle étourderie... Merci pour ton aide! Post Résolu :)
0
Mytå Messages postés 2973 Date d'inscription   Statut Contributeur Dernière intervention   953
 
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
EXCELLENT
 
Euuuuuhhh Je ne comprends pas trop ta formule mais je vais essayer..:)
0
EXCELLENT
 
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   Statut Contributeur Dernière intervention   953
 
Re le forum

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

A te relire
Mytå
0
EXCELLENT
 
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
Utilisateur anonyme
 
ah ça arrive des fois, personne n'est parfait!
de rien ^^
ciao ;-)
0
Mytå Messages postés 2973 Date d'inscription   Statut Contributeur Dernière intervention   953
 
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
EXCELLENT
 
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
Utilisateur anonyme
 
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
EXCELLENT
 
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
Utilisateur anonyme
 
tout est ok alors?
si c'est OK, on peut passer la discussion en résolu?
0
EXCELLENT
 
Oui biensur, mais la discussion est déjà en résolu
0
EXCELLENT
 
Euh bizarre, je l'avais mis en résolu...Et ce n'est plus proposé en haut du post...
0
Utilisateur anonyme
 
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