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 6393 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 9 octobre 2024 - 19 mars 2018 à 13:41
PHILOU10120 Messages postés 6393 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 9 octobre 2024 - 19 mars 2018 à 13:41
A voir également:
- Excel fonction si et
- Fonction si et - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Excel cellule couleur si condition texte - Guide
- Fonction moyenne excel - Guide
8 réponses
Raymond PENTIER
Messages postés
58777
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
17 258
Modifié le 18 mars 2018 à 02:42
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% )))))
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% )))))
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
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
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
Raymond PENTIER
Messages postés
58777
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
17 258
Modifié le 18 mars 2018 à 03:10
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%))))))
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%))))))
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
18 mars 2018 à 11:27
Wow merci pour vos réponses tout ça est parfait.
Merci encore.
Merci encore.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Raymond PENTIER
Messages postés
58777
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
17 258
Modifié le 18 mars 2018 à 18:34
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
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié le 19 mars 2018 à 09:56
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
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
PHILOU10120
Messages postés
6393
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
9 octobre 2024
810
19 mars 2018 à 10:42
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 ?
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 ?
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
19 mars 2018 à 11:51
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
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
PHILOU10120
Messages postés
6393
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
9 octobre 2024
810
19 mars 2018 à 13:41
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
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