XL 2019 Fonctions SI et SI(ET imbriquées

bimer

XLDnaute Nouveau
Bonjour la communauté,

J'ai besoin de votre aide à propos d'une formule qui me permettra de mettre du texte (mot ou phrase) selon le résultat en chiffres dans une cellule donnée.

SI la cellule est égale à 85, en appliquant cette formule : =SI(D5>89;"Pomme";SI(ET(D5<89;D5>74;"Poire";SI(ET(D5<74;D5>49;"Voiture";SI(D5<49;"Bateau")))))), le mot Poire devrait apparaître dans la cellule sélectionnée.

Or, quand je rentre cette formule, Excel me renvoie une erreur.

Merci par avance de votre aide.

Excellente journée.

Cordialement

Rodi
 
Solution
Bonjour Bimer,
Si ce sont des %, donc je pense entre 0 et 100%, alors les valeurs vont de 0 à 1.
Il faut donc convertir 89 en 0.89 74 en 0.74 etc...
De plus attention aux frontières, il faut mettre des >= et non des >, car sur ces valeurs la formule répondrait faux.
Donc en B9 de votre fichier :
VB:
=SI(D5>=0,89;"Pomme";SI(ET(D5<0,89;D5>=0,74);"Poire";SI(ET(D5<0,74;D5>=0,49);"Voiture";SI(D5<0,49;"Bateau"))))

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Bimer,
Vous avez des erreurs de parenthèses.
Quand plein de SI sont imbriqués vous pouvez utiliser le ALT+Entrée pour les retours à la ligne, c'est beaucoup plus lisible :
VB:
=SI(D5>89;"Pomme";
SI(ET(D5<89;D5>74);"Poire";
SI(ET(D5<74;D5>49);"Voiture";
SI(D5<49;"Bateau";""))))
D'autre part vous devez avoir des erreurs aux limites il n' y a que des < et >, peut être :
VB:
=SI(D5>89;"Pomme";
SI(ET(D5<=89;D5>74);"Poire";
SI(ET(D5<=74;D5>49);"Voiture";
SI(D5<=49;"Bateau";""))))
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Rodi, sylvanu,

je propose cette formule :
Code:
=SI(D5>89;"Pomme";SI(D5>74;"Poire";SI(D5>49;"Voiture";"Bateau")))
c'est le genre d'exo où il faut éviter de mettre les 2 bornes de chaque intervalle ; c'est l'ordre successif des différents tests et les « sinon » qui font qu'on obtient ce qu'il faut ; question : faut-il vraiment mélanger les fruits et les moyens de transport ? 😜

autre formule équivalente :
Code:
=SI(D5<50;"Bateau";SI(D5<75;"Voiture";SI(D5<90;"Poire";"Pomme")))
eh oui, c'est dans l'autre sens, mais toujours en mettant une seule borne de chaque intervalle à chaque fois, pas les deux bornes.

ah, ça y'est, j'ai trouvé : celui qui a mis 49 secondes ou moins à répondre a droit à une ballade en bateau sur le paquebot de luxe Pacific Princess de "La Croisière s'amuse" ; celui qui a mis entre 50 et 74 secondes à répondre a droit à la voiture de James Bond ; entre 75 et 89 secondes, le 1er lot de consolation est une poire (pour étancher la soif) ; pour 90 secondes et plus, le 2ème lot de consolation est une pomme (mais pas celle du Jardin d'Eden : Ève et Adam l'ont déjà mangée depuis longtemps ! 😁).

soan
 
Dernière édition:

bimer

XLDnaute Nouveau
Bonsoir Le Forum,
Bonsoir Jocellyn, Sylvanu et Soan,

Un très grand merci pour votre aide précieuse.

Pour le forum et une plus grande lisibilité, j'ai ajouté un fichier reprenant les formules citées.

Excellente soirée.

Bien cordialement.

Bimer
 

Pièces jointes

  • Fichier.test.xlsx
    9.1 KB · Affichages: 7

bimer

XLDnaute Nouveau
Bonjour le Forum,

Je ne sais pas si je dois ouvrir une nouvelle discussion, en rapport avec la solution donnée, elle ne fonctionne pas lorsque la cellule cible (D5 dans mon exemple) est en pourcentage.

Auriez-vous une astuce ?

Merci toujours de votre appui.

Excellente après-midi.

Bien cordialement.

Bimer
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Bimer,
Si ce sont des %, donc je pense entre 0 et 100%, alors les valeurs vont de 0 à 1.
Il faut donc convertir 89 en 0.89 74 en 0.74 etc...
De plus attention aux frontières, il faut mettre des >= et non des >, car sur ces valeurs la formule répondrait faux.
Donc en B9 de votre fichier :
VB:
=SI(D5>=0,89;"Pomme";SI(ET(D5<0,89;D5>=0,74);"Poire";SI(ET(D5<0,74;D5>=0,49);"Voiture";SI(D5<0,49;"Bateau"))))
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Bimer, le fil,

tu peux aussi essayer ces 2 formules :

VB:
=SI(D5>0,89;"Pomme";SI(D5>0,74;"Poire";SI(D5>0,49;"Voiture";"Bateau")))

Code:
=SI(D5<0,5;"Bateau";SI(D5<0,75;"Voiture";SI(D5<0,9;"Poire";"Pomme")))

j'insiste en disant qu'une seule borne de l'intervalle suffit : inutile de mettre les deux !

je rappelle que mes 2 formules sont équivalentes ; seul le sens change.

soan
 

Discussions similaires

Statistiques des forums

Discussions
312 228
Messages
2 086 420
Membres
103 205
dernier inscrit
zch