Formule complèxe EXCEL
Résolu
EXCELLENT
-
Utilisateur anonyme -
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!!!
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:
- Formule complèxe EXCEL
- Formule si et excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule somme excel colonne - Guide
- Excel mise en forme conditionnelle formule - Guide
- Liste déroulante excel - Guide
14 réponses
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)))
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)))
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
Au fait où était l'erreur?? :s
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!
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!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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)
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
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
Salut le forum
Une alternative si le nombre de conditions risque d'être élevés
Mytå
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å
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)
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)))
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)))
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!