Excel - Buscar de una lista de palabras en varias cadenas de texto

   
Vista:
Imágen de perfil de Carlos R.

Buscar de una lista de palabras en varias cadenas de texto

Publicado por Carlos R. carlosr.gomez.mtz@gmail.com (2 intervenciones) el 09/08/2018 17:36:16
Buen, día mi problema es que tengo en la columna A una lista con 40,000 cadenas de Texto (todas de distinta longitud) y necesito encontrar si en esa lista existen algunas palabras (300) que se encuentran en la columna F y que me arroje que palabras encontró en la columna B
como puedo formular para hallar esas palabras.

EJEMPLO
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 Antoni Masana

Buscar de una lista de palabras en varias cadenas de texto

Publicado por Antoni Masana (764 intervenciones) el 10/08/2018 12:57:59
Supongo que esto es lo que buscas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub Buscar()
    Dim Fila_A As Long, Fila_F As Long
 
    Columns("B:B").Select: Selection.ClearContents
 
    Fila_A = 2
    While Cells(Fila_A, "A") <> ""
        Fila_F = 2
        While Cells(Fila_F, "F") <> ""
            If InStr(Cells(Fila_A, "A"), Cells(Fila_F, "F")) > 0 Then
               If Cells(Fila_A, "B") = "" Then
                  Cells(Fila_A, "B") = Cells(Fila_F, "F")
               Else
                  Cells(Fila_A, "B") = Cells(Fila_A, "B") & ", " & Cells(Fila_F, "F")
               End If
            End If
            Fila_F = Fila_F + 1
        Wend
        Fila_A = Fila_A + 1
    Wend
    Range("B2").Select
End Sub

En esta macro deben coincidir mayúsculas y minúsculas. Porque "Patata" no es lo mismo que "patata".

Para evitar esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub Buscar()
    Dim Fila_A As Long, Fila_F As Long
 
    Columns("B:B").Select: Selection.ClearContents
 
    Fila_A = 2
    While Cells(Fila_A, "A") <> ""
        Fila_F = 2
        While Cells(Fila_F, "F") <> ""
            If InStr(UCase$(Cells(Fila_A, "A")), UCase$(Cells(Fila_F, "F"))) > 0 Then
               If Cells(Fila_A, "B") = "" Then
                  Cells(Fila_A, "B") = Cells(Fila_F, "F")
               Else
                  Cells(Fila_A, "B") = Cells(Fila_A, "B") & ", " & Cells(Fila_F, "F")
               End If
            End If
            Fila_F = Fila_F + 1
        Wend
        Fila_A = Fila_A + 1
    Wend
    Range("B2").Select
End Sub

Si tiene un fallo debrías subir un ejemplo y explicar el fallo.


Saludos.
\\//
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Carlos R.

Buscar de una lista de palabras en varias cadenas de texto

Publicado por Carlos R. (2 intervenciones) el 10/08/2018 20:59:40
Gracias Mil, lo pruebo y comento
De nuevo gracias por su tiempo
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
Revisar política de publicidad