Trop d'arguments dans formule

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

Je souhaite calculer une cotisation en fonction du salaire déclaré d'un adhérent.
J'ai entré cette formule (le salaire est dans la cellule E10) :
=SI(ET(E10<1311,21;E10*0,75%);SI(E10>=1311,21;E10<1433,17;E10*0,76%);SI(E10>=1433,17;E10<1555,13;E10*0,77%);SI(E10>=1555,13;E10<1677,09;E10*0,78%);SI(E10>=1677,09;E10<1799,05;E10*0,79%);SI(E10>=1799,05;E10<1921,01;E10*0,80%);SI(E10>=1921,01;E10<2042,97;E10*0,82%);SI(E10>=2042,97;E10<=2164,78;E10*0,85%);SI(E10>2164,78;E10*0,9%))
Réponse : "vous avez tapé un nombre trop important d'argument pour cette fonction"

Barème des cotisations
Salaire<1311.21 cotisation 0.75%
Salaire >= 1311.21 et Salaire<1433.17 cotisation 0.76%
Salaire>=1433.17 et Salaire<1555.13 cotisation 0.77%
Salaire>=1555.13 et Salaire<1677.09 cotisation 0.78%
Salaire>=1677.09 et Salaire<1799.05 cotisation 0.79%
Salaire>=1799.05 et Salaire<1921.01 cotisation 0.80%
Salaire>= 1921.01 et Salaire<2042.97 cotisation 0.82%
Salaire>=2042.97 et Salaire<=2164.78 cotisation 0.85%
Salaire>2164.78 cotisation 0.9%

3 réponses

  1. Raymond PENTIER Messages postés 58216 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    Normal : tu n'as pas respecté la syntaxe de la fonction SI ...
    0
    1. BP2607
       
      Merci de m'indiquer la bonne syntaxe (je galère grave)
      0
    2. Raymond PENTIER Messages postés 58216 Date d'inscription   Statut Contributeur Dernière intervention   17 482
       
      Il faut supprimer ce ET qui n'a rien à faire en début de formule.
      Par contre il devrait apparaitre dans toutes les autres occurrences de SI, avec la logique que tu as adoptée !

      La formule correcte est
      =E10* SI(E10<1311,21;0,75%; SI(E10<1433,17;0,76%; SI(E10<1555,13;0,77%; SI(E10<1677,09;0,78%; SI(E10<1799,05;0,79%; SI(E10<1921,01;0,80%; SI(E10<2042,97;0,82%; SI(E10<2164,78;0,85%; 0,9%))))))))
      0
    3. BP2607 > Raymond PENTIER Messages postés 58216 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Merci beaucoup cela fonctionne (vous êtes un chef)
      0
    4. Raymond PENTIER Messages postés 58216 Date d'inscription   Statut Contributeur Dernière intervention   17 482
       
      En effet, puisqu'on a déjà testé le cas
      SI(E10<1311,21;
      il est superflu de refaire ce test en écrivant
      SI(ET(E10>=1311,21;E10<1433,17;
      ce qui est redondant ...
      Et il suffit de multiplier le salaire (E10) par la cotisation (le résultat des tests), au lieu de calculer les 9 cotisations possibles dans la formule !
      0
    5. BP2607
       
      Si en revanche je veux appliquer un barème du type :
      salaire mensuel compris entre 991 et 1006 cotisation 7.47
      salaire mensuel compris entre 1006 et 1021 cotisation 7.62
      etc etc etc (100 tranches)
      Salaire supérieur à 2164 cotisation 0.9%

      Quelle sera la formule ?
      0
  2. Raymond PENTIER Messages postés 58216 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    ton post #4 ->

    Non, non, je ne suis pas un chef, loin de là !
    Mais le problème que tu nous as soumis est extrêmement fréquent, et a d'ailleurs fait l'objet de nombreuses discussions dans ce forum.
    C'est moi qui t'ai répondu le premier, parce que je bénéficie du décalage horaire et que mes petits camarades en Europe dorment déjà, alors que je n'ai pas encore soupé ...
    Mais ils sont des douzaines à pouvoir te donner la même solution que moi !

    En tout cas imprègne-toi bien de la logique du raisonnement, ainsi que de la bonne utilisation des fonctions ET, NON, OU combinées avec SI :
    https://www.cjoint.com/c/FCbaXIw8DJO
    https://www.cjoint.com/c/FCbaWEvMsTO

    Cordialement.
    0
  3. Raymond PENTIER Messages postés 58216 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    ton post #6 ->

    Pour 100 tranches on oublie la formule avec 99 SI ; on opte pour un tableau de correspondance et la fonction RECHERCHEV ...
    0