Formule si

Résolu/Fermé
Fanfan631954 Messages postés 2 Date d'inscription jeudi 4 février 2016 Statut Membre Dernière intervention 4 février 2016 - 4 févr. 2016 à 01:30
Fanfan631954 Messages postés 2 Date d'inscription jeudi 4 février 2016 Statut Membre Dernière intervention 4 février 2016 - 4 févr. 2016 à 21:40
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

PapyLuc51 Messages postés 4302 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 25 avril 2024 1 406
4 févr. 2016 à 06:42
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
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
4 févr. 2016 à 06:57
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
PapyLuc51 Messages postés 4302 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 25 avril 2024 1 406 > Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022
Modifié par PapyLuc51 le 4/02/2016 à 07:10
Bonjour 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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
4 févr. 2016 à 08:31
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
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
4 févr. 2016 à 09:47
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022
4 févr. 2016 à 10:42
Salut 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
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
4 févr. 2016 à 10:52
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
Fanfan631954 Messages postés 2 Date d'inscription jeudi 4 février 2016 Statut Membre Dernière intervention 4 février 2016
4 févr. 2016 à 21:40
merci à tous je ne connaissais pas INDEX
0