Excel fonction si et

Résolu/Fermé
vladicom Messages postés 2 Date d'inscription dimanche 18 mars 2018 Statut Membre Dernière intervention 18 mars 2018 - 18 mars 2018 à 00:41
PHILOU10120 Messages postés 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 - 19 mars 2018 à 13:41
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.
A voir également:

8 réponses

Raymond PENTIER Messages postés 58396 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 094
Modifié le 18 mars 2018 à 02:42
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
Mazzaropi Messages postés 1985 Date d'inscription lundi 16 août 2010 Statut Contributeur Dernière intervention 24 mai 2023 70
18 mars 2018 à 02:53
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
Raymond PENTIER Messages postés 58396 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 094
Modifié le 18 mars 2018 à 03:10
(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
vladicom Messages postés 2 Date d'inscription dimanche 18 mars 2018 Statut Membre Dernière intervention 18 mars 2018
18 mars 2018 à 11:27
Wow merci pour vos réponses tout ça est parfait.

Merci encore.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Raymond PENTIER Messages postés 58396 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 094
Modifié le 18 mars 2018 à 18:34
(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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 19 mars 2018 à 09:56
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
PHILOU10120 Messages postés 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 796
19 mars 2018 à 10:42
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
19 mars 2018 à 11:51
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
PHILOU10120 Messages postés 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 796
19 mars 2018 à 13:41
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