2012-05-10 12 views
17

Requisito:IF - ELSE IF - Estructura ELSE en Excel

Si la cadena en la celda A1 contiene "abc" como parte de la cadena

A continuación, asigne el valor "verde"

Else si la cadena en la celda A1 contiene "xyz" como parte de la cadena

a continuación, asigne el valor "amarillo"

Else

valor Asignar "Rojo"

He intentado esto:

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

Funciona si primero si es cierto en otros casos se da # ¡VALOR! como salida.

No se puede averiguar cuál es incorrecto.

Respuesta

28

Cuando FIND vuelve #VALUE!, es un error, no es una cadena, por lo que no se puede comparar con FIND(...)"#VALUE!", es necesario comprobar si FIND devuelve un error con ISERROR. También FIND puede trabajar en múltiples caracteres.

Así que una versión simplificada y de trabajo de su fórmula sería:

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

O, para eliminar las dobles negaciones:

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

+ 1 agradable y simple :) –

+0

¡Dulce! Trabajado como un encanto. – RazrBoy

6
=IF(CR<=10, "RED", if(CR<50, "YELLOW", if(CR<101, "GREEN"))) 

CR = ColRow (Cell) Este es un ejemplo. En este ejemplo, cuando el valor en la celda es menor o igual que 10, entonces la palabra ROJA aparecerá en esa celda. De la misma manera, otras condiciones si son verdaderas si primero si es falso.