Formule si

Résolu
Bonjour,
je n'arrive pas à résoudre un problème de formule, j'ai une cellule si avec plusieurs conditions, dont le résultat est une somme, est juste et, à partir de ce résultat je veux, dans une autre cellule une autre fonction si pour avoir un %.
1ère formule qui fonctionne
=SI($H$19<125;"0";SI(ET($H$19>=125;$H$19<250);"250";SI(ET($H$19>=250;$H$19<500);"500";SI(ET($H$19>=500;$H$19<1000);"1000";SI(ET($H$19>=1000;$H$19<2000);"2000";SI(ET($H$19>=2000;$H$19<4000);"4000";SI(ET($H$19>=4000;$H$19<6000);"8000";SI($H$19>=6000;"12000"))))))))
seconde formule qui va chercher le résultat de la première et qui ne fonctionne pas
=SI(H26<250;"0";SI(ET(H26>=250;H26<500);"3";SI(ET(H26>=500;H26<1000);"6";SI(ET(H26>=1000;H26<2000);"9";SI(ET(H26>=2000;H26<4000);"11";SI(ET(H26>=4000;H26<8000);"14";SI(ET(H26>=8000;H26<12000);"16";SI(H26>=12000;"21"))))))))
pouvez-vous m'aider
merci

2 réponses

  1. Contributeur
    Bojour
    sans les SI en cascade
    =INDEX({0;250;500;1000;2000;4000;6000;12000};EQUIV($H$19;{0;125;250;500;1000;2000;4000;6000};1))

    nota H19<0 non pris en compte
    mais le mieux est peut-^tre de faire un tableau à 2 colonnes et d'utiliser RECHERCHEV
    0
    1. Contributeur
      Salut Michel
      heu.. ta proposition ne serait pas plutôt

      =INDEX({0;3;6;9;14;16;21};EQUIV($H$19;{0;125;250;500;1000;2000;4000;6000};1))

      parce que là, on renvoie la valeur cherchée?

      crdlmnt
      0
    2. Contributeur
      @VaucluseSalut Vaucluse

      je n'ai travaillé que sur la 1° formule :o)
      et une petite faute de frappe
      INDEX({0;250;500;1000;4000;8000;12000};

      mais on pourrait peut-être écrire sans rebondir sur H26

      =INDEX({0;3;6;9;14;16;21};EQUIV($H$19;{0;250;500;1000;4000;8000;12000};1))
      à vérifier
      0
    3. Contributeur
      Effectivement, moi je n'avais réfléchi que sur la 2° :-(
      mais oui, vu la constitution des deux formules, et après test, cette dernière proposition fonctionne directement.
      Crdlmnt
      0
    4. merci à tous je ne connaissais pas INDEX
      0
  2. Bonjour,

    Si tu mets des guillemets le résultat sera un texte et non pas un nombre, donc il faut les enlever de tes deux formules, comme ceci :

    la première

    =SI($H$19<125;0;SI(ET($H$19>=125;$H$19<250);250;SI(ET($H$19>=250;$H$19<500);500;SI(ET($H$19>=500;$H$19<1000);1000;SI(ET($H$19>=1000;$H$19<2000);2000;SI(ET($H$19>=2000;$H$19<4000);4000;SI(ET($H$19>=4000;$H$19<6000);8000;SI($H$19>=6000;12000))))))))

    la deuxième

    =SI(H26<250;0;SI(ET(H26>=250;H26<500);3;SI(ET(H26>=500;H26<1000);6;SI(ET(H26>=1000;H26<2000);9;SI(ET(H26>=2000;H26<4000);11;SI(ET(H26>=4000;H26<8000);14;SI(ET(H26>=8000;H26<12000);16;SI(H26>=12000;21))))))))

    cordialement
    0
    1. Contributeur
      Bonjour
      on peut aussi en complément de ce que préconise Papyluc, simplifier la formule car il 'est pas utile de reporter les minima dans les conditions (Excel arrête de lire la formule quand il a trouvé la condition réalisée)
      Donc enlever les ET

      =SI(H26<250;0;SI(H26<500;3;SI(H26<1000;6;SI(H26<2000;9;SI(H26<4000;11;SI(H26<8000;14;SI(H26<12000;16;21)))))))

      ça fonctionne aussi bien et ça fait moins lourd

      le 21 viendra par défaut si les autres conditions ne sont pas remplies

      crdlmnt
      0
    2. @VaucluseBonjour Vaucluse

      J'allais faire une modification de ma réponse mais tu m'as devancé.
      La première formule peut aussi être allégée de la même façon

      Cordialement
      0