web-dev-qa-db-fra.com

IF - ELSE IF - ELSE Structure dans Excel

Exigence:

Si la chaîne dans la cellule A1 contient "abc" dans la chaîne

Puis attribuez la valeur "Green"

Sinon si la chaîne dans la cellule A1 contient "xyz" dans la chaîne

Puis attribuez la valeur "Jaune"

Else

Attribuer une valeur "rouge"

j'ai essayé ceci:

=IF(FIND("~",SUBSTITUTE(A1,"abc","~",1))<>"#VALUE!", "Green", IF(FIND("~",SUBSTITUTE(A1,"xyz","~",1))<>"#VALUE!", "Yellow", "Red"))

Cela fonctionne si le premier IF est True dans les autres cas, cela donne #VALUE! en sortie.

Je ne peux pas comprendre ce qui ne va pas.

20
RazrBoy

Lorsque FIND renvoie #VALUE!, Il s’agit d’une erreur et non d’une chaîne. Vous ne pouvez donc pas comparer FIND(...) avec "#VALUE!". Vous devez vérifier si FIND renvoie une erreur avec ISERROR. De plus, FIND peut fonctionner sur plusieurs caractères.

Donc, une version simplifiée et fonctionnelle de votre formule serait:

=IF(ISERROR(FIND("abc",A1))=FALSE, "Green", IF(ISERROR(FIND("xyz",A1))=FALSE, "Yellow", "Red"))

Ou, pour supprimer les doubles négations:

=IF(ISERROR(FIND("abc",A1)), IF(ISERROR(FIND("xyz",A1)), "Red", "Yellow"),"Green")
34
assylias
=IF(CR<=10, "RED", if(CR<50, "YELLOW", if(CR<101, "GREEN")))

CR = ColRow (Cell) Ceci est un exemple. Dans cet exemple, lorsque la valeur dans Cell est inférieure ou égale à 10, le mot RED apparaît dans cette cellule. De la même manière, autres si les conditions sont vraies si premier si est faux.

7
Asad Raza Sumayari