Fonction SI

Résolu
Bonjour, j'essaie de créer une fonction SI dans un classeur Excel. J'ai essayé cette formule: =si(et(Y8>=151:Y8<=500;32;si(et(Y8>=501;Y8>=3200;125;si(et(Y8>=3201;Y8<=10000;200;si(et(Y8>=10001;Y8<=35000;315;si(et(Y8>=35001;Y8<=150000;500;si(et(Y8>=150001;Y8<=150;SOP360 ou AQ,""))))))
Je ne comprends pas à quel moment j'ai fait une erreur... j'ai lu tout ce que je pouvais trouver sur le sujet mais cela ne fonctionne pas...Pour info Y8 contient une formule et ma fonction SI doit s'appuyer sur le résultat de la formule dans Y8.

Pourriez-vous m'apporter votre aide?

Merci par avance.

3 réponses

  1. Modérateur
    Bonjour,

    si(et(Y8>=501;Y8>=3200

    Si >=3200 .. c'est forcément >501 ....
    erreur de signe non ?
    0
    1. Modérateur
      Et...

      si(et(Y8>=150001;Y8<=150

      pas possible.....
      0
    2. Effectivement jordan45 erreur de signe, après rectification cela ne fonctionne toujours pas...
      Comment imbriquer dans ma formule que si Y8 est <à 151 ou >=150001 il faut voir "SOP360 ou AQ"?

      Merci pour ton aide!! je m'arrache les cheveux là! :-)
      0
  2. Contributeur
    Bonjour

    si c'est bien la copie de la formule que vous nous montrez là
    • voyez avec les deux points au début de la formule, ici:


    =si(et(Y8>=151:Y8<=500)
    qui devrait être point virgule:
    =si(et(Y8>=151;Y8<=500)

    et ensuite, placez une parenthèse derrière chaque groupe de ET(....;....)

    si(et(Y8>=151:Y8<=500);32;si(et(Y8>=501;Y8>=3200);125....

    et il n'y a pas de logique ici: (2° groupe de ET)
    et(Y8>=501;Y8>=3200
    une valeur > que 501 ou de 3200???

    pas plus qu'ici:
    si(et(Y8>=150001;Y8<=150
    .. à la fois >150001 et plus petit que 150 ?.... pas facile, non?

    et enfin, si votre dernière condition est un texte , placer le entre guillemets
    ......;"SOP360 ou AQ",""))))))

    donc à reprendre soigneusement!!

    =SI(ET.....;....);valeur 1;SI(ET(....;.....);valeur 2;SI(ET etc...

    avec valeur entre guillemets si elle n'est pas numérique

    Crdlmnt

    La qualité de la réponse dépend surtout de la clarté de la question, merci!
    0
    1. oui effectivement j'ai fait beaucoup d'erreur...un peu trop acharnée j'ai fini par faire pire que mieux!!!

      Si je mets cette formule cela ne fonctionne toujours pas....
      =SI(ET(Y8>=151;Y8<=500);32;SI(ET(Y8>=501;Y8<=3200);125;SI(ET(Y8>=3201;Y8<=10000);200;SI(ET(Y8>=10001;Y8<=35000);315;SI(ET(Y8>=35001;Y8<=150000);500)))));SI(Y8>=150001; "SOP360 ou AQ") ;SI(Y8<=150; "SOP360 ou AQ")

      POURQUOI JE N'Y ARRIVE PAS!! :-(
      0
    2. Contributeur
      @mag-magbonsoir, as-tu un message d'erreur, ou un résultat inattendu?
      0
    3. @yg_bebonsoir yg_be,

      Non pas de message d'erreur, cependant le résultat ds ma cellule est #valeur!
      0
    4. est-ce que le fait que Y8 contienne une formule peut être la cause de ce problème?
      0
    5. Contributeur
      @mag-magtu continues à ne pas respecter la syntaxe du SI:
      SI (condition;valeursivrai;valeursifaux)

      tu as plusieurs SI suivis de seulement deux éléments entre les parenthèses qui suivent.
      par exemple, à la fin:
      SI(Y8<=150; "SOP360 ou AQ")

      si c'est trop compliqué, commence par une formule simple, et complique-là petit à petit.
      exemple:
      =SI(ET(.....;....);valeur 1;SI(ET(....;.....);valeur 2;valeur3))

      ou bien utilise plusieurs formules, construites les unes sur les autres.
      0
  3. Bonjour mag-mag,

    Je te propose cette formule (à mettre sur une seule ligne) :

    =SI(OU(Y8<151;Y8>150000);"SOP360 ou AQ";32+93*(Y8>500)
    +75*(Y8>3200)+115*(Y8>10000)+185*(Y8>35000))

    Teste-la et vérifie bien tous les cas possibles ;
    tu dois obtenir tous les résultats attendus.

    Cordialement, Laurent
     
    0
    1. Merci pour ton aide Laurent!!!
      0