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

 
Vista:
Imágen de perfil de Carlos R.
Val: 4
Ha aumentado su posición en 4 puestos en Excel (en relación al último mes)
Gráfica de Excel

Buscar de una lista de palabras en varias cadenas de texto

Publicado por Carlos R. (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
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Buscar de una lista de palabras en varias cadenas de texto

Publicado por Antoni Masana (2477 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.
Val: 4
Ha aumentado su posición en 4 puestos en Excel (en relación al último mes)
Gráfica de Excel

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