Hola,
A menudo me veo en la situacion de comprobar texto contenido en celdas, es decir, si alguna palabra en concreto o alguna alabra de un listado está contenida en una celda. Las bases de datos de clientes, como sabeis si os dedicais a las finanzas, rara vez tienen un lenguaje especifico con lo cual, y yendo al ejemplo más basico, no siempre contienen las siglas «S.A.» o «S.L.» sino que contienen derivados de estas, o a veces ni siquiera contienen el tipo de sociedad.
Para comprobar rapidamente que celdas no lo contienen, o si la base de datos estuviese perfecta, que clientes coresponden a un tipo, podemos formular una busqueda sobre las celdas del nombre que nos devuelva VERDADERO o FALSO en funcion de si cumple el requisito deseado, y asi comprobar texto contenido en celdas.
Para ello lo priemro es crear el listado de palabras que queremos comprobar, en mi ejemplo va a ser S.A. y S.L. de manera que obtendremos VERDADERO para aquellos clientes que tienen bien el nombre y FALSO para aquellos que o bien están incompletos o bien están incorrectos.
Partimos de una lista de nombres de empresas en la columna A y vamos a evaluarlo en la columna B:
A continuacion creamos la lista de valores a evaluar y le asignamos un nombre a la misma, tal y como vimos en el articulo de nombres en excel.
Ahora solo nos queda construir la formula, que anida las funciones SUMAPRODUCTO y CONTAR.SI.CONJUNTO. Sería así (para la celda B2):
SUMAPRODUCTO(CONTAR.SI.CONJUNTO(A2;»*»&lista&»*»))>0
Os explicamos como funciona: la funcion Contar.si.conjunto busca los valores contenidos en el rango lista usando los comodines de busqueda *. Esta formula, al buscar varios valores de una lista, devuelve una matriz (en este caso, como busca dos valores, una matriz de 1×2). Si no encuentra ningun valor devolverá {0,0}, pero si encuentra uno de los valores, por ejemplo el primero, devolverá {1,0}.
Ahora esta matriz la sometemos a un Sumaproducto. Este, al contener sólo un rango, lo multiplica por un rango de igual dimension con valores unitarios. Por tanto, el resultado del sumaproducto será cero siempre que no haya encontrado ningun valor, ya que 0x1 + 0x1 = 0 o uno si ha encontrado un valor, 1×1 + 0x1 = 1.
Evaluamos el sumaproducto con un mayor que cero y obtendremos por tanto VERDADERO si ha encontrado algun valor y FALSO si no ha encontrado ninguno.
El resultado final sería así
Esta formula se puede modificar si queremos evaluar no si contiene un valor de la lista, sino todos ellos. El ejemplo que hemos visto no nos sirve, pero si imaginamos una cadena de texto en la cual tiene que haber tres valores, la formula sería igual pero sustituyendo el 0 por un 2. Asi, solo si la matriz devuelta por el contar.si.conjunto es {1,1,1} el sumaproducto será igual a 3, y la formula nos devolverá VERADERO.
Espero que os haya sido de ayuda y sobre todo, os haya dado ideas practicas donde aplicarlo!
Saludos