Respuestas:
Intenta usar esto:
=ISNUMBER(SEARCH("Some Text", A3))
Esto regresará TRUE
si la celda A3
contiene Some Text
.
CONTAINS("Text", cell)
función.
FIND()
en lugar deSEARCH()
,
lugar de ;
. Después de cambiar la fórmula proporcionada a =ISNUMBER(SEARCH("Some Text"; A3))
funcionó. ¡Gracias!
La siguiente fórmula determina si el texto "VERIFICAR" aparece en la celda C10. Si no lo hace, el resultado está en blanco. Si lo hace, el resultado es el trabajo "COMPROBAR".
=IF(ISERROR(FIND("CHECK",C10,1)),"","CHECK")
Esta fórmula me parece más intuitiva:
=SUBSTITUTE(A1,"SomeText","") <> A1
esto devuelve VERDADERO si "SomeText" está contenido en A1.
Las fórmulas IsNumber / Search e IsError / Find mencionadas en las otras respuestas ciertamente funcionan, pero siempre encuentro que necesito mirar la ayuda o experimentar en Excel con demasiada frecuencia con esas.
Para aquellos que deseen hacer esto usando una sola función dentro de la instrucción IF, uso
=IF(COUNTIF(A1,"*TEXT*"),TrueValue,FalseValue)
para ver si el TEXTO de la subcadena está en la celda A1
[NOTA: TEXT necesita tener asteriscos a su alrededor]
Echa un vistazo a la FIND()
función en Excel.
Sintaxis:
FIND( substring, string, [start_position])
Devuelve #VALUE!
si no encuentra la subcadena.
ISNUMBER
esto también funciona, solo para coincidencias entre mayúsculas y minúsculas.
Me gusta Rink.Attendant.6 respuesta. De hecho, quiero verificar si hay varias cadenas y lo hice de esta manera:
Primero, la situación: nombres que pueden ser constructores de casas o nombres de comunidades y necesito agrupar a los constructores como un solo grupo. Para hacer esto, estoy buscando la palabra "constructor" o "construcción", etc. Entonces -
=IF(OR(COUNTIF(A1,"*builder*"),COUNTIF(A1,"*builder*")),"Builder","Community")
=OR(COUNTIF(A1,"*builder*"),COUNTIF(A1,"*construction*"))
?
COUNTIFS
:COUNTIFS(A1,"*builder*",A1,"*construction*")
Es una vieja pregunta, pero creo que sigue siendo válida.
Como no hay una función CONTAINS, ¿por qué no declararla en VBA? El siguiente código utiliza la función VBA Instr, que busca una subcadena en una cadena. Devuelve 0 cuando no se encuentra la cadena.
Public Function CONTAINS(TextString As String, SubString As String) As Integer
CONTAINS = InStr(1, TextString, SubString)
End Function
Esta es una pregunta antigua, pero una solución para aquellos que usan Excel 2016 o más reciente es que puede eliminar la necesidad de estructuras anidadas si usa el nuevo IFS( condition1, return1 [,condition2, return2] ...)
condicional.
Lo he formateado para que sea visualmente más claro sobre cómo usarlo para el caso de esta pregunta:
=IFS(
ISERROR(SEARCH("String1",A1))=FALSE,"Something1",
ISERROR(SEARCH("String2",A1))=FALSE,"Something2",
ISERROR(SEARCH("String3",A1))=FALSE,"Something3"
)
Como SEARCH
devuelve un error si no se encuentra una cadena, la envolví con un ISERROR(...)=FALSE
para verificar la verdad y luego devolver el valor deseado. Sería genial si SEARCH
devuelve 0 en lugar de un error de legibilidad, pero desafortunadamente así es como funciona.
Otra nota importante es que IFS
devolverá la coincidencia que encuentre primero y, por lo tanto, ordenar es importante. Por ejemplo, si mis cadenas eran Surf, Surfing, Surfs
como las String1,String2,String3
anteriores y la cadena de mis celdas Surfing
coincidiría en el primer término en lugar del segundo debido a que la subcadena es Surf
. Por lo tanto, los denominadores comunes deben ser los últimos en la lista. Mi IFS
tendría que ser ordenado Surfing, Surfs, Surf
para que funcione correctamente (el intercambio Surfing
y Surfs
también funcionaría en este sencillo ejemplo), pero Surf
tendría que ser el último.
Aquí está la fórmula que estoy usando
=IF( ISNUMBER(FIND(".",A1)), LEN(A1) - FIND(".",A1), 0 )
IFERROR(LEN(A1) - FIND(".", A1), 0)