COMPROBAR SI UNA CELDA CONTIENE UN CARÁCTER O PALABRA ESPECÍFICA

Hola a todos:

Hace unos días me preguntaban una fórmula para poder averiguar si una celda contiene un carácter o cadena específica. La respuesta es que existen varias y con distinta combinación de fórmulas.

Comenzamos con ejemplo para buscar, imaginad que queremos comprobar si en “Excel Signum” se encuentra la cadena de texto siguiente: “Sig“.

Comenzamos con la fórmula más conocida y que encontraréis en todas las web y manuales. Donde con la función HALLAR buscamos “Sig” en el contenido de la celda y si lo encuentra nos devolverá un número com resultado de la posición. Si utilizamos la función ESNUMERO nos devolverá un verdadero o falso, que combinado con la función SI nos permitirá incluir un texto cuando encuentre el valor.

La función Hallar permite comodines y no distingue entre mayúsculas y minúsculas:

=SI(ESNUMERO(HALLAR("Sig";A1));"Contiene valor";"No lo contiene")

La siguiente fórmula (que es la que suelo usar), se compone de la combinación de CONTAR.SI y SI.

Cuando ejecutamos CONTAR.SI nos va a devolver el número de veces que cuenta el valor buscado, con la función SI indicamos que cuando el resultado sea verdadero (superior a 0) indique que contiene el valor buscado.

Esta fórmula permite comodines y en este caso son necesarios dado que para indicar que busque en todo el contenido de la celda debemos especificar los asteriscos al inicio y al final del valor, pero podríamos especificar que solo sea al inicio o al final. No distingue entre mayúsculas y minúsculas:

=SI(CONTAR.SI(A2;"*Sig*");"Contiene valor";"No lo contiene")

Otra posibilidad es una variante de la primera fórmula pero usando la función ENCONTRAR. Tiene la limitación de no permitir comodines y distingue entre mayúsculas y minúsculas:

=SI(ESNUMERO(ENCONTRAR("Sig";A5));"Contiene valor";"No lo contiene")

Por último, otra función que tampoco permite comodines y se debe respetar las mayúsculas y minúsculas, es la siguiente:

=SI(SUSTITUIR(A4;"Sig";"")<>A4=VERDADERO;"Contiene valor";"No lo contiene")

Aquí, lo que evaluamos es que cuando la fórmula sustituir sea verdadera, es cuando nos indicará que contiene el valor (dado que si lo sustituye es porque lo ha encontrado).

Este sería el resultado:

COMPROBAR SI UNA CELDA CONTIENE UN CARÁCTER O PALABRA ESPECÍFICA

Estoy seguro que existen más combinaciones para obtener el mismo resultado y con otras fórmulas, pero creo que estas cuatro os pueden servir en prácticamente todos los casos.

Y eso es todo, espero que os resulten de utilidad.

Descarga el archivo de ejemplo pulsando en: COMPROBAR SI UNA CELDA CONTIENE UN CARÁCTER O PALABRA ESPECÍFICA

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

8 pensamientos en “COMPROBAR SI UNA CELDA CONTIENE UN CARÁCTER O PALABRA ESPECÍFICA

  1. Hola,
    gracias por tan buena explicación.
    Te traslado un caso que me cuesta hacer funcionar con estas fórmulas que indicas.
    Quiero buscar un caracter “?” en dos una casilla que puede contener estos dos tipos de texto:

    https://dominio.es
    https://dominio.es/ca/?1=1

    Pero siempre me devuelve VERDADERO

    he probado

    =SI(CONTAR.SI(T1;”*?*”);”Sí contiene ?”;”No contiene ?”)

    Me gusta

    • Claro, porque ? es un comodín en sí mismo, y la otra función con Hallar (le ocurre lo mismo con la interrogación.

      Para el caso de indicas, que es especial, debes usar las dos últimas:

      =SI(SUSTITUIR(A4;”?”;””)A4=VERDADERO;”Contiene valor”;”No lo contiene”)

      =SI(ESNUMERO(ENCONTRAR(“?”;A5));”Contiene valor”;”No lo contiene”)

      Saludos.

      Me gusta

      • Hola Segu! Muchas gracias por tu rápida respuesta.
        Fenomenal. Probaré las dos opciones.
        Por mi parte seguí buscando y, finalmente, logre hacerlo funcionar poniendo antes del signo “?” una virgulilla “~” lo que hace que el comodín no se comporte como tal…
        Otra cosa que aprendí ayer… jeje.
        Gracias de nuevo.

        Me gusta

  2. Hola. Tengo un alista con mas de 16.000 filas, y de esas debo filtrar las que contienen ciertas palabras (una lista de 21), no es facil filtarlo manualmente, pues las palabras pueden estar al principio o en la mitad de la celta. Sabes si existe alguna forma de hacer un buscar que busque no una palabra si no varias? Este es el ejemplo corto:
    La fuente:
    AMPLIFIER-MONITOR
    SPRING, HELICAL, COMPRESSION
    PUP JOINT, WELL DRILLING
    O-RING
    VALVE, AIR PRESSURE RELIEF
    ADAPTER VALVE
    SEAT, HELICAL COMPRESSION SPRING
    MODULE VALVE
    Quiero una formula para saber si en cada una de esas está la palabra “Valve, o Gasket, o así, 21 opciones), para reducir las 16.000 a una lista corta sobre la que tengo que hacer algo.
    Se reciben ideas!

    Me gusta

    • Lo normal sería hacerlo con una macro o con una UDF. Si lo quieres hacer con una fórmula, puedes usar el operador lógico 0 y usarlo en una de las funciones anteriores (ligeramente modificada):

      =SI(O(ESNUMERO(ENCONTRAR(“VALVE”;A1));ESNUMERO(ENCONTRAR(“GASKET”;A1));ESNUMERO(ENCONTRAR(“HOLA”;A1)));1;0)

      Ahora debes ir ampliando la fórmula por cada palabras hasta 21. Será larga, pero funcionará, cada vez que una de las palabras coincida en A1, marcará un 1 si no lo hace ninguna será un 0.

      Saludos

      Me gusta

  3. Buenas tardes,

    Estoy tratando de encontrar una formula que me indique si una celda contiene cierto texto (lista de varias fracciones de texto) y de ser así me inidique que corresponde a un “RECAUDO” de lo contrato a un “EGRESO”

    Me gusta

    • Hola Angélica: Eso lo debes hacer con la fórmula del comentario anterior: Por ejemplo: =SI(O(ESNUMERO(ENCONTRAR(“EGRESO”;A2));ESNUMERO(ENCONTRAR(“REGRESO”;A2));ESNUMERO(ENCONTRAR(“OTRAS”;A2)));”EGRESO”;”RECAUDO”).

      Me gusta

¿Te ha gustado?, Realiza un comentario.

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios .