Excel - Encontrar las filas que contienen palabras que necesito Ver

 
Vista:

Encontrar las filas que contienen palabras que necesito Ver

Publicado por FernandoBravo (1 intervención) el 14/05/2015 21:04:11
Buenas Tardes

Actualmente tengo una BD con casi 1500 filas. Cada fila tiene una cadena de caracteres diferentes (todas dentro de una misma celda), en algunos casos existen palabras similares dentro cada fila. Por ejemplo:

Fila 1: Tempera para niños de color rojo de 10 gramos
Fila 2: Tempera para adultos de color negro de 50 gramos
Fila 3: Tempera para niños de color amarillo de 10 gramos
Fila 4: Tempera para adultos de color negro de 10 gramos

Estoy tratando de crear una macro en la cual ingrese dos o varias palabras a la vez y que estas palabras sean buscadas en cada fila y posteriormente me indique cuales son las líneas que contienen las dos o más palabras. Por ejemplo:

Si yo ingreso las palabras: "negro tempera" tendría que indicarme filas: 2, 4
Si yo ingreso las palabras: "niños" tendrías que indicarme filas 1, 3
Si yo ingreso las palabras: "10 tempera" tendría que indicarme filas 1,3 y 4

Agradezco la ayuda porque ya estoy como 3 días y no he podido resolver este dilema.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de LaO

Encontrar las filas que contienen palabras que necesito Ver

Publicado por LaO (67 intervenciones) el 14/05/2015 23:45:21
Hola Fernando,

Puedes resolver este problema creando una función, la cual puedes llamar desde otra rutina o simplemente exponerla de manera pública al usuario.

A continuación te indico el código que he adaptado específicamente para este tema. La función trabaja con 3 parámetros:
1- Rango a evaluar (Obligatorio)
2- Parámetro a buscar (Obligatorio)
3- Parametro adicional (Opcional)

----------------------------------------------------------------------->
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script>
 
Function fnFindText(ByVal objRange As Range, ByVal sPar1 As String, Optional sPar2 As String)
 
Dim sText As String, sTarget As String
Dim objCell As Range
 
'vars
sText = sPar1
sText = "*" & sText & "*"
 
'get data
For Each objCell In objRange
    If objCell.Text Like sText Then sTarget = "Ok" Else sTarget = "Nothing"
Next objCell
 
'set result
fnFindText = sTarget
 
End Function
 
</script>

----------------------------------------------------------------------->

Un ejemplo de uso seria así, asumiendo que tenemos datos en la celda A1 y buscamos solo 1 palabra (negro):
A1="Tempera para niños de color rojo de 10 gramos" B1="=fnFindText(A1;"negro")"

Otro ejemplo buscando dos palabras (10, tempera):
A1="Tempera para niños de color rojo de 10 gramos" B1="=fnFindText(A1;"10";"tempera")"

Bien, prueba la función y comentas.

Un saludo,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar