Formule circulaire

amine -  
Raymond PENTIER Messages postés 71867 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je veux faire une formune qui ce répete jusqu'a ce que le résultat soit égale a 100

exemple A1=A1+1 jusqu'a B2= 100 sachant que B2 = (A1*2 + 15)/3

c'est juste un exemple le but c'est le calcule de l'IRG a partir du net ,

pour un salaire Net de 1000Euro quel est le salaire imposable et IRG sur excel 2007 bien sure

A voir également:

4 réponses

Raymond PENTIER Messages postés 71867 Date d'inscription   Statut Contributeur Dernière intervention   17 397
 
Et pourquoi "une formule qui se répète" ?
Tu as l'équation B2=(A1*2+15)/3 et tu veux la solution pour B2=100, donc
(A1*2+15)/3=100
A1*2+15=300
A1*2=300-15=285
A1=285/2=142,5
Avec ton système tu ne trouverais jamais la solution, puisque tu ne considères que des valeurs entières pour A1.
0
amine
 
merci Raymond mais ma formule n'est pas aussi simple que ça
je veux trouver le d11 si d12 = 120000 sachaque que :

D12= D11-(+SI((SI(((SI(D11>120000;(((D11-120000)*35%)+(26999,7+3999,8));SI(D11>30000;((D11-30000)*30%+3999,8);SI(D11>10000;((D11-10000)*20%);0))))*40%)>1500;(SI(D11>120000;(((D11-120000)*35%)+(26999,7+3999,8));SI(D11>30000;((D11-30000)*30%+3999,8);SI(D11>10000;((D11-10000)*20%);0))))-1500;SI(((SI(D11>120000;(((D11-120000)*35%)+(26999,7+3999,8));SI(D11>30000;((D11-30000)*30%+3999,8);SI(D11>10000;((D11-10000)*20%);0))))*40%)<1000;(SI(D11>120000;(((D11-120000)*35%)+(26999,7+3999,8));SI(D11>30000;((D11-30000)*30%+3999,8);SI(D11>10000;((D11-10000)*20%);0))))-1000;((SI(D11>120000;(((D11-120000)*35%)+(26999,7+3999,8));SI(D11>30000;((D11-30000)*30%+3999,8);SI(D11>10000;((D11-10000)*20%);0))))-(SI(D11>120000;(((D11-120000)*35%)+(26999,7+3999,8));SI(D11>30000;((D11-30000)*30%+3999,8);SI(D11>10000;((D11-10000)*20%);0))))*40%))))<0;0;(SI(((SI(D11>120000;(((D11-120000)*35%)+(26999,7+3999,8));SI(D11>30000;((D11-30000)*30%+3999,8);SI(D11>10000;((D11-10000)*20%);0))))*40%)>1500;(SI(D11>120000;(((D11-120000)*35%)+(26999,7+3999,8));SI(D11>30000;((D11-30000)*30%+3999,8);SI(D11>10000;((D11-10000)*20%);0))))-1500;SI(((SI(D11>120000;(((D11-120000)*35%)+(26999,7+3999,8));SI(D11>30000;((D11-30000)*30%+3999,8);SI(D11>10000;((D11-10000)*20%);0))))*40%)<1000;(SI(D11>120000;(((D11-120000)*35%)+(26999,7+3999,8));SI(D11>30000;((D11-30000)*30%+3999,8);SI(D11>10000;((D11-10000)*20%);0))))-1000;((SI(D11>120000;(((D11-120000)*35%)+(26999,7+3999,8));SI(D11>30000;((D11-30000)*30%+3999,8);SI(D11>10000;((D11-10000)*20%);0))))-(SI(D11>120000;(((D11-120000)*35%)+(26999,7+3999,8));SI(D11>30000;((D11-30000)*30%+3999,8);SI(D11>10000;((D11-10000)*20%);0))))*40%))))))

c'est pour ça je cherche une formule qui répete le D11 jusqu'a ce que je trouve le D12 volu
0
Raymond PENTIER Messages postés 71867 Date d'inscription   Statut Contributeur Dernière intervention   17 397
 
Il n'y a guère de ressemblance entre tes deux formules !
Pas étonnant que ma réponse ne convienne pas !
Alors je te suggère d'utiliser une toupie. Mais j'ai l'impression que 10000<D1<120000 alors que les valeurs limites de la toupie sont 0 et 30000 ; il faut donc une cellule intermédiaire pour passer de la valeur incrémentée grâce à la toupie à la valeur affectée à D1.
Ta formule contient 1647 caractères ; en remplaçant 30% par ,3 tu peux descendre à 1617 caractères.
Par ailleurs tu fais une débauche de parenthèses inutiles :
(((D11-120000)*0,35)+(26999,7+3999,8)) peut s'écrire simplement
(D11-120000)*0,35+26999,7+3999,8 soit 5 parenthèses de moins ...
Je t'en ai enlevé un bon paquet ; il en reste peut-être deux ou trois, mais nous sommes parvenus à seulement 1512 caractères ; ce n'est pas négligeable !
= D11-SI((SI((SI(D11>120000;(D11-120000)*0,35+26999,7+3999,8;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))*0,4)>1500;SI(D11>120000;(D11-120000)*0,35+26999,7+3999,8;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))-1500;SI(SI(D11>120000;(D11-120000)*0,35+26999,7+3999,8;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))*0,4<1000;SI(D11>120000;(D11-120000)*0,35+26999,7+3999,8;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))-1000;(SI(D11>120000;(D11-120000)*0,35+26999,7+3999,8;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))-(SI(D11>120000;(D11-120000)*0,35+26999,7+3999,8;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0))))*0,4))))<0;0;(SI((SI(D11>120000;(D11-120000)*0,35+26999,7+3999,8;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))*0,4)>1500;SI(D11>120000;(D11-120000)*0,35+26999,7+3999,8;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))-1500;SI(((SI(D11>120000;(D11-120000)*0,35+26999,7+3999,8;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0))))*0,4)<1000;SI(D11>120000;(D11-120000)*0,35+26999,7+3999,8;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))-1000;SI(D11>120000;(D11-120000)*0,35+26999,7+3999,8;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))-SI(D11>120000;(D11-120000)*0,35+26999,7+3999,8;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))*0,4))))
Salut !
0
Raymond PENTIER Messages postés 71867 Date d'inscription   Statut Contributeur Dernière intervention   17 397
 
Rectificatif : quand tu saisis ,35 dans une formule, excel corrige automatiquement en 0,35 !
0
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 139
 
Salut,

Pour ma part je n'ai pas tout compris mais si en A1 tu veux une formule qui additionne 1 à sa valeur, genre compteur ce n'est possible qu'en VBA, par avec une formule classique ou en ajoutant des colonnes.
Une formule ne peut s'additionner à elle même
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Salut mike,

Ben si, dans les options on peut autoriser le calcul par itération.
Mais c'est sportif et il y a un risque de ne pas tout maitriser dans certains cas...
A réserver à des cas bien particuliers et là ça m'étonnerait que ce soit nécessaire.

eric
0
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 139
 
Salut Eriiic,

Oui bien sur, je sais, à la place de dire "Une formule ne peut s'additionner à elle même " j'aurais du préciser.
Merci de l'avoir fait.
Il est tout de même rare de faire des calculs avec itération ou du moins dans ce genre de problème ?
Cordialement
Mike-31
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Sûr.
Et combien même ça serait obligatoire que je partirai plutôt en vba comme toi. Sur une fonction personnalisée.

eric
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour,

Ca m'étonne qu'un calcul d'impot nécessite un calcul par itérations.
Plutôt que ta formule fournis plutôt le mode de calcul fourni par ton administration des impôts.

eric
0
Raymond PENTIER Messages postés 71867 Date d'inscription   Statut Contributeur Dernière intervention   17 397
 
Salut ________ En continuant avec mon histoire de toupie, et en cherchant à alléger encore la formule de amine, j'ai pu gagner encore 6 parenthèses inutiles.
Et si dans une cellule vide je fais la somme =26999,7+3999,8 et si je définis le nom "cum" pour cette cellule, ma formule devient
=D11-SI(SI(SI(D11>120000;(D11-120000)*0,35+cum;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))*0,4>1500;
SI(D11>120000;(D11-120000)*0,35+cum;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))-1500;
SI(SI(D11>120000;(D11-120000)*0,35+cum;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))*0,4<1000;
SI(D11>120000;(D11-120000)*0,35+cum;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))-1000;
SI(D11>120000;(D11-120000)*0,35+cum;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))-
SI(D11>120000;(D11-120000)*0,35+cum;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))*0,4))<0;0;
SI(SI(D11>120000;(D11-120000)*0,35+cum;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))*0,4>1500;
SI(D11>120000;(D11-120000)*0,35+cum;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))-1500;
SI(SI(D11>120000;(D11-120000)*0,35+cum;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))*0,4<1000;
SI(D11>120000;(D11-120000)*0,35+cum;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))-1000;
SI(D11>120000;(D11-120000)*0,35+cum;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))-
SI(D11>120000;(D11-120000)*0,35+cum;SI(D11>30000;(D11-30000)*0,3+3999,8;SI(D11>10000;(D11-10000)*0,2;0)))*0,4)))

avec au total 1374 caractères.
J'insère une toupie en conservant ses paramètres par défaut (valeur minimale 0, valeur maximale 30000, changement de pas 1) et en spécifiant Cellule liée C11. En D11 j'ai choisi (après quelques tatonnements et essais) la formule =160000+C11 pour que les valeurs issues de la toupie soient dans l'ordre de grandeur convenable pour D11. En D13 je saisis la formule ci-dessus. En D14 je calcule l'écart =D12-D13.
J'actionne ma toupie jusqu'à ce que l'écart soit nul.
Ainsi pour C11=5000 on trouve 249,50 ; pour C11=5300 on trouve 54,50 ; pour C11=5370 on trouve 9,00 et pour C11=5383 on trouve 0,55 !
https://www.cjoint.com/?BEhqXTH3uXW

Cordialement.
0
amine
 
Bonjour Raymond , et merci beaucoup , mais le résultat en enlevent les parenthése le résultat n'est pas le meme , par exemple pour D11 = 182000 dans ma formule le D12 c'est 51199 avec ta formule c'est 130800 ,

et svp comment en fait une "toupie" ! sur excel quel est la formule svp ?

merci d'avance
0
Raymond PENTIER Messages postés 71867 Date d'inscription   Statut Contributeur Dernière intervention   17 397
 
Non, amine, tu fais erreur : en remplaçant dans ta formule D11 par 182 000 on trouve 130 800,50.
-----------------------------------------------------
Pour obtenir une toupie, il faut utliser la commande "Insérer des contrôles".
Tu peux l'ajouter à ta barre d'outils Accès rapides : cliquer sur la flèche, à droite, qui permet de la personnaliser en sélectionnant "Autres commandes" ; et dans la boîte de dialogue qui s'affiche tu demandes "Onglet développeur" et là tu trouves ta commande ...

Cordialement.
0