Excel fonction si et

Résolu
vladicom Messages postés 2 Statut Membre -  
PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je souhaites faire un affichage sur mon tableau excel mais je ne trouve pas comment faire pouvez vous m'aider svp? merci.

Alors J'aimerais que :
- si A1 est compris entre 0 et 1000 cela m'affiche 10%
- si A1 est compris entre 1001 et 2000 cela m'affiche 20%
- si A1 est compris entre 2001 et 3000 cela m'affiche 30%
- si A1 est compris entre 3001 et 4000 cela m'affiche 40%
- si A1 est compris entre 4001 et 5000 cela m'affiche 50%
- si A1 est supérieur à 5000 cela m'affiche 60%

J'ai essayé un truc dans le genre :

=SI(ET(C2>0;C2<1000);"10%";SI(ET(C2>1000;C2<2000);"20%";SI(ET(C2>2000;C2<3000);"30%";SI(ET(C2>3000;C2<4000);"40%";SI(ET(C2>4000;C2<5000);"50%")))))))

Mais cela ne fonctionne pas je dois faire une erreur quelque part.

Merci d'avance pour votre aide.

Bonne journée.

8 réponses

  1. Raymond PENTIER Messages postés 58211 Date d'inscription   Statut Contributeur Dernière intervention   17 480
     
    Bonjour.

    Oui, il y a des erreurs dans :
    =SI(ET(C2>0;C2<1000);"10%";SI(ET(C2>1000;C2<2000);"20%";SI(ET(C2>2000;C2<3000);"30%";
    SI(ET(C2>3000;C2<4000);"40%";SI(ET(C2>4000;C2<5000);"50%")))))))

    - La première est d'avoir mis 7 parenthèses à la fin alors qu'il n'y a que 5 fois la fonction SI.
    Mais normalement Excel t'a affiché un message d'erreur et proposé la bonne écriture !

    - La deuxième est qu'après "50%" il manque le texte à afficher si C2>5000, soit "60%" ...

    - Il y en a peut-être une troisième, parce que tes affichages actuels sont des textes, puisque placés entre guillemets ; s'ils doivent servir à des calculs, comme c'est très vraisemblable, il faut supprimer ces guillemets.

    Ta formule devient finalement :
    =SI(ET(C2>0;C2<1000);10%;SI(ET(C2>1000;C2<2000);20%;SI(ET(C2>2000;C2<3000);30%;SI(ET(C2>3000;C2<4000);40%;SI(ET(C2>4000;C2<5000);50% ;60% )))))
    0
  2. Mazzaropi Messages postés 1983 Date d'inscription   Statut Contributeur Dernière intervention   72
     
    vladicom, Bonsoir.

    Notre collègue Raymond (Salut de Brésil) a déjà répondu exactement à ce que vous vouliez.

    Mais je pense qu'il existe des moyens plus efficaces que celui que vous essayez d'utiliser.

    Ci-joint des suggestions de solutions avec RECHERCHE, RECHERCHEV et SI + ET.

    https://www.cjoint.com/c/HCsbYJ0nx6A

    J'espère avoir aidé avec quelque chose.
    --
    Belo Horizonte, MG - Brasil.
    Marcílio Lobão
    0
  3. Raymond PENTIER Messages postés 58211 Date d'inscription   Statut Contributeur Dernière intervention   17 480
     
    (suite ...)
    Tu as aussi commis une erreur de logique, qui conduit à une formule trop compliquée ...

    En effet tu testes si C2>1000 alors que tu viens de tester que C2<1000 était faux !
    =SI(ET(C2>0;C2<1000);"10%";SI(ET(C2>1000;C2<2000);"20%";

    De plus ta formule n'examine pas le cas où C2=1000 !

    Tu aurais donc dû écrire =SI(C2<0;"-";SI(C2<1001;"10%";SI(C2<2001;"20%";...

    La formule complète, plus élégante et plus "light", sera la suivante :
    =SI(C2<0;"-";SI(C2<1001;10%;SI(C2<2001;20%;SI(C2<3001;30%;SI(C2<4001;40%;
    SI(C2<5001;50%;60%))))))


    0
  4. vladicom Messages postés 2 Statut Membre
     
    Wow merci pour vos réponses tout ça est parfait.

    Merci encore.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Raymond PENTIER Messages postés 58211 Date d'inscription   Statut Contributeur Dernière intervention   17 480
     
    (edit #7...)
    Et si tu veux gérer en plus le cas où C2 ne contient pas un nombre positif (mais un nombre négatif, un texte ou rien), il faut opter pour
    =SI(OU(C2<0;ESTVIDE(C2);ESTTEXTE(C2));"#"; SI(C2=0;0,1; SI(C2>5000;0,6;
    ARRONDI.SUP(C2/1000;0)/10)))

    https://www.cjoint.com/c/HCsrHP5LU2m

    0
  7. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour
    A partir de 3 ou4 SI en cascade, il vaut mieux passer sur d'autres formules.
    essaie
    =(A1>0)*EQUIV(A1;{1;1001;2001;3001;4001;5001};1)*0,1
    mettre la cellule au format-nombre -pourcentage-0 décimale

    0
  8. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    Bonjour Michel_m

    Il ne faudrait pas mettre un contrôle pour le cas d'une cellule vide afin d'éviter le #N/A
    modifier comme ceci :

    =SI(A1>0;(A1>0)*EQUIV(A1;{1;1001;2001;3001;4001;5001};1)*0,1;"")

    votre méthode m'a plu donc je l'ai copier pour la comprendre et j'ai eu "#N/A" comme résultat d'où ma question ?
    0
  9. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    effectivement mais alors,on pourrait écrire
    =(A1>=1)*(EQUIV(A1;{1;1001;2001;3001;4001;5001};1)*0,1)
    si A1 est vide ou inférieur à 1, le résultat donne 0

    si c'est l'utilisation de EQUIV et/ou de la multiplication que tu ne piges pas, fais signe

    0
    1. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
       
      Bonjour Michel_m
      Non c'est bon
      C'est " =(A1>0)* " qui ne chagrinait car je ne comprenais pas le fonctionnement, ça bloquait
      Maintenant c'est bon et je vois que le Si est inutile
      Merci pour l'aide
      0