Numbers : une formule ne donne pas un résultat correct [Résolu/Fermé]

Signaler
Messages postés
11
Date d'inscription
lundi 7 novembre 2016
Statut
Membre
Dernière intervention
25 décembre 2016
-
Messages postés
38712
Date d'inscription
mardi 2 octobre 2007
Statut
Modérateur
Dernière intervention
22 juin 2021
-
Bonsoir,

Dans Numbers, j'utilise la formule suivante (dont je ne suis pas l'auteur) pour calculer une imposition par tranche, mais le résultat produit n'est pas tout à fait exact. Je ne parviens pas à comprendre où est la faille.

=CHOISIR(EQUIV(E6;{0;30100;50100;80100;120100;170100;250100};1);0;(E6-30000)*0,121;2407,9+(E6-50000)*0,139;6564+(E6-80000)*0,157;12828,3+(E6-120000)*0,184;22009,9+(E6-170000)*0,217;39369,9+(E6-250000)*0,25)

Voici les éléments de référence :
Tranches de revenu Taux
0 à 30.000 0%
30.100 à 50.000 12,1%
50.100 à 80.000 13,9%
80.100 à 120.000 15,7%
120.100 à 170.000 18,4%
170.100 à 250.000 21,7%
250.100 et au-dessus 25%

Montant du revenu : 750 000 F (E6)

Le résultat correct est : 164 323,2
Le résultat de la formule est : 164 369,9

Merci à ceux qui auront la patiente de débusquer cette anomalie ou de m'orienter pour que j'arrive au bon résultat.
C'est vrai que la formule est assez complexe, si vous avez quelque chose de plus simple, je suis bien sûr preneur.

Cordialement,

3 réponses

Messages postés
20375
Date d'inscription
samedi 17 mars 2007
Statut
Contributeur
Dernière intervention
22 juin 2021
5 641
Bonjour,

Je dirais qu'il y a un truc étrange dans ta formule car les 100 premiers francs de chaque tranche d'imposition ne sont pas considérés dans ta formule.
Aussi je pense qu'il te faut faire plutôt cela:
=CHOISIR(EQUIV(E6;{0;30100;50100;80100;120100;170100;250100};1);0;(E6-30100)*0,121;2407,9+(E6-50100)*0,139;6564+(E6-80100)*0,157;12828,3+(E6-120100)*0,184;22009,9+(E6-170100)*0,217;39369,9+(E6-250100)*0,25) 


Ensuite deuxième erreur: pour la tranche 250000, c'est 39348,2:
=CHOISIR(EQUIV(E6;{0;30100;50100;80100;120100;170100;250100};1);0;(E6-30100)*0,121;2407,9+(E6-50100)*0,139;6564+(E6-80100)*0,157;12828,3+(E6-120100)*0,184;22009,9+(E6-170100)*0,217;39348,2+(E6-250100)*0,25) 


Ritchi
Messages postés
11
Date d'inscription
lundi 7 novembre 2016
Statut
Membre
Dernière intervention
25 décembre 2016

Bonjour Ritchi,

La formule corrigée me donne maintenant le bon résultat. J'ai du chemin à faire…
Merci beaucoup pour cette aide très précieuse !

Je perds également mes nerfs avec le problème des cellules vides ("") qui produisent des erreurs dans les formules. Existe-t-il une façon de conserver une cellule vide sans qu'elle produise une erreur ?
Connaissez-vous un tutoriel qui traite spécifiquement de cette question sur Numbers ?

Cordialement,
Messages postés
38712
Date d'inscription
mardi 2 octobre 2007
Statut
Modérateur
Dernière intervention
22 juin 2021
10 993
Bonjour,

Je partage les remarques de Ritchi, mais j'irai encore plus loin en ce qui concerne le raisonnement. On ne devrait pas avoir 2 fois les mêmes valeurs prises en compte. Exemple : si une tranche se termine par 50100, la tranche suivante devrait commencer à 50101 et non à 50100.

J'ignore si les tranches doivent effectivement commencer chaque fois à 100 de plus que la tranche précédente, et donc ne pas imposer 100 F dans chaque tranche. Ça me semble une erreur.

Si on corrige cette erreur, et que l'on considère que la première tranche s'arrête à 30 000, la suivante devrait commencer à 30 001... et ainsi de suite, ce qui donnerait ce tableau à mettre en formule :




Cordialement

salut Ritchi ;-)



Bonne Journée :-) - Francis
“Groupe de travail : Un groupe de personnes incapables de faire quoi que ce soit par elles-mêmes qui décident collectivement que rien ne peut être fait !” WCh
Messages postés
11
Date d'inscription
lundi 7 novembre 2016
Statut
Membre
Dernière intervention
25 décembre 2016

Bonjour Francis,

Il s'agit d'une base d'imposition fiscale et curieusement 100 F sont exonérés d'impôt pour chaque tranche. Je ne connais pas l'explication de cette bizarrerie, mais je dois l'appliquer telle quelle.

Concernant votre seconde remarque, je suis d'accord avec vous, mais comme je ne maîtrise par trop l'utilisation des formules, je ne voulais pas entrer dans trop de subtilités.
Si je veux être plus précis, voici les modifications que je dois apporter à la formule corrigée par Ritchi : (E6-30101) au lieu de (E6-30100), et ainsi de suite ?

Merci pour votre réponse.
Messages postés
38712
Date d'inscription
mardi 2 octobre 2007
Statut
Modérateur
Dernière intervention
22 juin 2021
10 993 >
Messages postés
11
Date d'inscription
lundi 7 novembre 2016
Statut
Membre
Dernière intervention
25 décembre 2016

Bonsoir,

si cette histoire de 100 F ignorés au départ de chaque tranche est à respecter, la formule re Ritchi est bonne, puisque dans ce cas, on ne reprend pas 2 fois les mêmes valeurs...

cdt.
Messages postés
11
Date d'inscription
lundi 7 novembre 2016
Statut
Membre
Dernière intervention
25 décembre 2016
>
Messages postés
38712
Date d'inscription
mardi 2 octobre 2007
Statut
Modérateur
Dernière intervention
22 juin 2021

Bonsoir,
Pour bien éclairer ma lanterne. S'il n'y a pas de décalage dans les tranches, je dois en créer un en ajoutant 1 F au commencement de la tranche supérieure. S'il y a un déjà un décalage, comme dans la base que je dois appliquer, quel que soit ce décalage, l'ajout de 1 F est inutile ?

Je perds également mes nerfs avec le problème des cellules vides ("") qui produisent des erreurs dans les formules.
Voici la formule que j'utilise pour que la cellule contienne soit le résultat du calcul, soit reste vide.
=SI((I6/30)*$B6>0;(I6/30)*$B6;"")

Mais lorsque j'intègre cette cellule vide dans une formule, j'obtiens un avertissement d'erreur : L'opérateur + : un nombre, une date ou une durée attendue, mais a trouvé "".

='Salaire & accessoires' :: D6+'Salaire & accesoires' :: F6+'Salaire & accesoires' :: H6+'Salaire & accesoires' :: J6+'Salaire & accesoires' :: L6+'Salaire & accesoires' :: N6+'Salaire & accesoires' :: P6+'Salaire & accesoires' :: R6+'Salaire & accesoires' :: T6

De même dans cette formule où C6 est une durée, j'obtiens cet avertissement : "Les durées ne peuvent comparées à d'autres données".
=SI(C6<=$A$2;"";SI(C6>$A$2;C6-D6;$A$3))

Existe-t-il une façon de conserver une cellule vide sans qu'elle produise une erreur ?
Connaissez-vous un tutoriel qui traite spécifiquement de cette question sur Numbers ?

Cordialement,
Messages postés
11
Date d'inscription
lundi 7 novembre 2016
Statut
Membre
Dernière intervention
25 décembre 2016

PS : J'ai vu l'option qui consiste à remplacer "" par 0 en appliquant un format conditionnel où le 0 prend la couleur du fond (donc invisible), mais si la formule produit un résultat 0 dont j'ai besoin, je ne le verrai pas.
Messages postés
38712
Date d'inscription
mardi 2 octobre 2007
Statut
Modérateur
Dernière intervention
22 juin 2021
10 993
Pour bien éclairer ma lanterne. S'il n'y a pas de décalage dans les tranches, je dois en créer un en ajoutant 1 F au commencement de la tranche supérieure. S'il y a un déjà un décalage, comme dans la base que je dois appliquer, quel que soit ce décalage, l'ajout de 1 F est inutile ? 


c'est cela. Le 1 F nécessaire lorsque les tranches se suivent est inutile, car remplacé par 100 F. Il n'y a donc pas de chevauchement de valeurs

la formule :

SI((I6÷30)×$B6>0;(I6÷30)×$B6;"")

fonctionne correctement, c'est à dire que la cellule reste bien vide à l'affichage si les conditions ne sont pas remplies, mais, un espace vide n'est pas une valeur numérique additionnable.

La solution est de remplacer les "" par un 0 et ensuite de donner une format personnalisé à la cellule pour ne pas voir la valeur zéro si affichage des zéros non souhaité. Il faut indiquer, dans le format personnalisé, un vide à la place du zéro

exemple :




avec ça, ça fonctionne.

cdt




Bonne Journée :-) - Francis
“Groupe de travail : Un groupe de personnes incapables de faire quoi que ce soit par elles-mêmes qui décident collectivement que rien ne peut être fait !” WCh