MAGUU

Cargando

  • Feb, Vie, 2021

FILTRAR para encontrar palabras clave

¿Cómo encontramos palabras clave a partir de nombres largos?

Tenemos una tabla principal con una lista de productos. Como vemos, los nombres son cadenas de texto largas que pueden incluir alguna palabra clave de la tabla auxiliar.

lista de productos con algunos nombres largos

En la tabla auxiliar, las palabras clave presentan información relativa a los productos: el grupo al que pertenecen.

tabla auxiliar con información relacionada
tabla auxiliar con información relacionada

Pretendemos clasificar los productos de la tabla principal según las palbaras clave de la tabla auxiliar.

lista de productos y sus palabras clave

Por lo tanto, primero buscamos la palabra clave dentro del nombre del producto, y después usamos esa palabra clave como criterio de búsqueda para obtener todos los registros que lo cumplan.

La función HALLAR busca una cadena de texto dentro de una segunda cadena de texto y no discrimina en la búsqueda de textos entre mayúsculas y minúsculas. Por tanto es una función mucho más versátil que ENCONTRAR.

Con la función HALLAR conseguimos la posición inicial de la primera cadena de texto, a partir del primer carácter de la segunda cadena de texto.

HALLAR(texto_buscado;dentro_del_texto;[núm_inicial])

¿Cómo lo hacemos?

Lo que queremos conseguir tiene una sencilla lógica excel. En primer lugar, comprobamos si las palabras clave están en el nombre de los productos de la lista. De esto se encarga la función HALLAR. En segundo lugar, ese resultado lo usamos como criterio de filtrado para obtener la categoría a la que pertenece el producto. De esto se encarga la función FILTRAR.

Ambas partes trabajan juntas porque el resultado de HALLAR lo convertimos en un valor booleano (VERDADERO o FALSO) con la función ESNUMERO y ya nos sirve como criterio para el filtrado.

Paso 1: escribimos la función HALLAR

Empezamos a construir la fórmula escribiendo la función HALLAR en la barra de fórmulas.

Normalmente el argumento texto_buscado es un texto simple para la búsqueda dentro de un texto más largo. Por ejemplo, hallar «m» en «Madrid».

En nuestro caso empleamos como argumento un array de celdas: F5:F7, esto es, el rango donde están las palabras clave. De esa manera, si encuentra uno de ellos, nos da la posición inicial en el nombre del producto.

La referencia es absoluta porque evaluamos el nombre de cada producto de la lista con las palabras clave de este rango.

función HALLAR argumento texto_buscado array
función HALLAR, argumento texto_buscado array

Con esto, ya incluimos la celda del producto como el segundo argumento de la función (dentro_del_texto).

función HALLAR argumento dentro_del_texto
función HALLAR, argumento dentro_del_texto

Por último, la función HALLAR nos devuelve el número de la posición inicial del texto buscado (desde el primer carácter de la segunda cadena de texto), o bien nos devuelve un error porque no lo ha encontrado.

evaluación de la función hallar
evaluación de la función hallar

La evaluación que hace la función HALLAR encuentra «cocina» en la primera posición de «Cocina portátil» y por eso nos devuelve 1. Sin embargo, no encuentra «Casa» ni «Cabina» y devuelve el error !#VALOR.

Por tanto, nos interesan los valores numéricos que consigue la función HALLAR porque significan que la palabra clave existe dentro del nombre del producto.

Paso 2: necesitamos un valor lógico

Como acabamos de ver, la evaluación del array nos devuelve un valor numérico o un mensaje de error. Para utilizarlo como criterio de la función FILTRAR lo convertimos en un valor booelano con la función ESNUMERO.

La función ESNUMERO es una función de información y la usamos para comprobar si un valor es numérico. Si la celda contiene un valor numérico, devuelve VERDADERO; en otro caso, devuelve FALSO.

ESNUMERO(valor)

valor representa el valor que queremos verificar, entonces aplicado a nuestro caso:

función ESNUMERO

y conseguimos este resultado:

valores booleanos

Es decir, para el primer producto existe coincidencia en la lista de las palabras clave.

Paso 3: filtramos la lista de productos

Ahora ya tenemos listo el criterio para filtrar, así que empelamos la función FILTRAR.

La función FILTRAR extrae de un rango de datos los valores coincidentes con los criterios que definamos. Es una función disponible para versiones Microsoft 365.

FILTRAR(array;include;[if_empty])

En el primer argumento de la función, definimos el array de datos que filtramos. En nuestro caso, los valores de la categoría en la tabla auxiliar .

Como criterio, el resultado de la función ESNUMERO que nos devuelve un valor booelano.

y finalmente, si el criterio anterior nos devuelve FALSO, una alternativa. En este caso, optamos por el espacio en blanco con las comillas, aunque podríamos usar un texto de advertencia.

Validamos la fórmula y obtenemos, para el primer producto, el grupo que le corresponde.

Por último, extendemos al selección hacia abajo y conseguimos las categorías del resto de productos que contengan palabras clave:

filtrar para encontrar palabras clave
resultado final