formul de calcul par tranche

malek-farid

XLDnaute Junior
bonjou
je solicite votre aide pour la création d'une formule je doit calculer un impot par tranche comme suit

de 15000 a 22500 = VALEUR *0.2-3000
de 22501 A 28750 = VALEUR *0.12-1200
de 28751 A 30000 = VALEUR *0.2-3500
de 30001 A 120000 = VALEUR *0.3-6500

ma formule écrit
=SI(ET($G$1>=15000;$G$1<=22500);($G$1*0.2)-3000);SI(ET($G$1>=22501;$G$1<=28750);($G$1*0.12)-1200;"");SI(ET($G$1>=28751;$G$1<=30000);($G$1*0.2)-3500;"");SI(ET($G$1>=30001;$G$1<=120000);($G$1*0.3)-6500;"")

le résultat m'indique une erreur #VALEUR!
que je n'arrive pas a corriger merci de votre aide
 

mutzik

XLDnaute Barbatruc
Re : formul de calcul par tranche

bonjour
essaie
=SI(ET($G$1>=15000;$G$1<=22500);$G$1*0.2-3000);SI(ET($G$1>=22501;$G$1<=28750);$G$1*0.12-1200;SI(ET($G$1>=28751;$G$1<=30000);$G$1*0.2-3500;SI(ET($G$1>=30001;$G$1<=120000);$G$1*0.3 -6500;"en dehors")
 

pijaku

XLDnaute Occasionnel
Re : formul de calcul par tranche

Bonjour,

1- Tu as un problème de parenthèses... La parenthèse fermante ci dessous (la dernière après -3000), ferme ta formule SI :
=SI(ET($G$1>=15000;$G$1<=22500);($G$1*0.2)-3000)
2- plutôt que de combiner des SI et ET, je te conseille d'évaluer au préalable les cas. Dans ton cas, il faut voir si G1 est :
=> Inférieur à 15 000,
=> Inférieur à 22 501,
=> Inférieur à 28 751,
=> Inférieur à 30 001,
=> Inférieur à 120 001,
=> autres cas (supérieur à 120 001)
Si tu respecte cet ordre, la formule fonctionnera, sans ET. Il y a peut être plus de conditions, mais la formule obtenue sera plus "lisible", du moins il me semble.
=SI($G$1<15000;"Inférieur à 15000";SI($G$1<22501;($G$1*0.2)-3000;SI($G$1<28751;($G$1*0.12)-1200;SI($G$1<30001;($G$1*0.2)-3500;SI($G$1<120001;($G$1*0.3)-6500;"Supérieur à 120000")))))
 

mutzik

XLDnaute Barbatruc
Re : formul de calcul par tranche

re,

sinon, le meilleur est de faire dans l'ordre inverse, c'est à dire
=SI(B13>120000;"sup à 120000";SI(B13>30000;B13*0,3-6500;SI(B13>28750;B13*0,2-3500;SI(B13>22500;B13*0,12-1200;SI(B13>15000;B13*0,2-3000;"inf ou = à 15000")))))
dès que excel va trouver une condition vraie, il ne continuera pas le reste de la formule
B13 est ma cellule de test, à toi d'adapter
1. mais si tu as un grand nombre de valeurs à calculer, il vaut mieux utiliser une recherchev
2. écrire les valeurs en 'dur' dans une formule n'est pas la bonne méthode non plus, il vaut mieux utiliser des ref à des cellules qui contiennent les coeff multiplicateur et les valeurs à soustraire
 

job75

XLDnaute Barbatruc
Re : formul de calcul par tranche

Bonjour à tous,

On peut aussi stocker les paramètres du calcul dans le nom défini matrice :

Code:
={0.0.0;15000.0,2.3000;22501.0,12.1200;28751.0,2.3500;30001.0,3.6500;121000."?"."?"}
C'est bien sûr une matrice de 3 colonnes et 6 lignes.

Ensuite la formule pour une valeur en A1 est simple :

Code:
=A1*RECHERCHEV(A1;matrice;2)-RECHERCHEV(A1;matrice;3)
Nota : comme l'a dit mutzik on peut aussi stocker dans un tableau de cellules.

Edit : avec le point comme séparateur décimal, sur Excel 2010 matrice devient :

Code:
={0\0\0;15000\0.2\3000;22501\0.12\1200;28751\0.2\3500;30001\0.3\6500;121000\"?"\"?"}
A+
 
Dernière édition:

Statistiques des forums

Discussions
312 584
Messages
2 089 991
Membres
104 330
dernier inscrit
joedal