Buesqueda de texto

Primero antes que todo espero que ue estés bien, y gozando de muy buena salud.
En una celda de excel tengo una palabra, ¿cómo puedo hacer para poderla buscar en otra celda que tenga un montón de palabras?, me explico, resulta ser que tengo varias celdas en donde aparecen el nombre de algunos bienes como Arroz, frijoles, azúcar, etc, y otra donde puede ser que tanga esos bienes o no (esta lista es de los que pagan impuesto), pero son demasiadas lineas en donde tengo esa información, por ejemplo cada linea donde tengo que buscar supongo que tienen más de 155 caracteres, es decir es una frase., ¿Mi pregunta es si se puede buscar una palabra en una frase? Yo se que utilizando el buscar, si se puede hacer lo que quiero, pero resulta ser que las palabras que tengo que buscar son un montón, para que te des una idea sonmas de 1300, por eso te pido ayuda, si quieres te puedo mandar el archivo para que te des una idea, ¿a ver si eso se puedo o no?.

1 respuesta

Respuesta
2
Sé que ha pasado bastante tiempo desde que planteaste esta inquietud y que es probable que ya la tengas resuelta.
Sin embargo me pareció una función útil que merecía ser desarrollada (todo un desafío)
Luego de fracasar exitosamente en varias oportunidades, logré una UDF (función definida por el usuario) que hace lo que necesitas sobre una lista.
SI labúsqueda hubiese sido sobre una única celda, la fórmula ENCONTRAR hubiera sido suficiente. O si tu lista de datos contuviera una sola palabra por celda, una fórmula de COINCIDIR o BUSCAR alcanzaba.
El problema es que necesitabas una combinación de ambas fórmulas para resolver tu situación.
En definitiva, surgió es función personalizada que deberás ingresa en un módulo de Visual Basic:
Public Function Bus2TXT(ByVal text2search As String, rang2search As Range)
Application.Volatile
On Error Resume Next
TextEsta = -4141
For Each Tcell In rang2search
If Application.WorksheetFunction.IsError(Application.WorksheetFunction.Find(UCase(text2search), UCase(Tcell.Value))) Then
TextEsta = -4141
Else
TextEsta = 1
Exit For
End If
Next Tcell
Bus2TXT = IIf(TextEsta = -4141, "No está", "Iujuuu! Está")
Bus2TXT = IIf(TextEsta = -4141, False, True)
End Function
Entonces, en tu hoja escribirás una fórmula, como esta:
=Bus2TXT(A3,$D$5:$D$1400)
Donde
A3 es la celda que contiene el texto a buscar y D5:D1400 es el rango donde está la lista de productos.
Seguramente, habrá otras formas de resolverlo pero ésta funciona.
Verás que la últimas dos líneas son similares, pero en definitiva el resultado de la búsqueda lo da la segunda. Esta devuelve una variable booleana VERDADERO si encontró el texto y FALSO si no, por si necesitas usarla en un condicional.
Si anulas ésta línea, el resultado de la búsqueda será un texto que indica si está o no.
La función corrige la situacióon de que el texto estuviese escrito con mayúsculas o no en la lista.
Una última consideración:
El uso de los espacios será muy importante en las búsquedas.
Por ejemplo:
Si el texto buscado fuese "Pan"
Y tu lista fuera:
Trigo y maíz
Panqueques
Hinojo
Uvas
Carne vacuna
La fórmula devolvería VERDADERO, toda vez que "Pan" efectivamente está en "Panqueques".
Entonces, para que busque específicamente "Pan", en la celda deberías entrar: "Pan " (Sin comillas) como criterio de búsqueda. ¿Me expliqué bien?
Adicionalmente, te mandaré a tu casilla de correo, el archivo donde desarrollé la fórmula.
Te envío un gran abrazo!
Fernando
Muchísimas Gracias por tomarte el tiempo y la dedicación, te lo agradezco, esperare el archivo para verlo más en forma, de Nuevo no tengo otra cosa más que agradecerte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas