Buscar una lista de nombres en una lista de textos

Tengo una serie de nombres en diferentes filas, en la misma columna:

Tengo otra columna donde pueden aparecer esos nombres, y nunca hay dos, siempre son diferentes:

Necesito otra columna al lado que me diga que en la primera fila es RULO, en la segunda es MIGUEL, OCTAVIO, etc

Es decir buscar valores de una matriz de una columna en otra matriz de una columna

¿Es posible?

Respuesta
1

H o l a:

Te anexo una macro para buscar los nombres.

Cambia en la macro "A" por la columna en donde tienes los nombres.

"B" Por la columna donde están los textos y "C" por la columna en donde quieres el resultado:

Sub BuscarNombre()
'Por.Dante Amor
    c1 = "A"    'Columna de nombres
    c2 = "B"    'Columna de Textos
    c3 = "C"    'Columna de resultados
    '
    For i = 2 To Range(c1 & Rows.Count).End(xlUp).Row
        Set b = Columns(c2).Find(Cells(i, c1), lookat:=xlPart)
        If Not b Is Nothing Then
            Cells(b.Row, c3) = Cells(i, c1)
        End If
    Next
    MsgBox "Búsqueda terminada", vbInformation, "BUSCAR NOMBRES"
End Sub

Instrucciones para userform

  1. Abre tu hoja de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / UserForm
  4. Le das dobleclik en cualquier parte del Panel del userForm y copias la macro
  5. En el panel del UserForm creas un Combobox, que se llame ComboBox1

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: BuscarNombre
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

Disculpa Dante, no sé cómo indicar la columna. Estoy en excel para MAC.

Los nombres están de A1:A9, sin título de columna

Los textos están de B1:B136, sin título de columna

Los resultados, tendrán que ir obteniéndose de C1:C136

Puedes indicarme qué tengo que poner??, he probado varias formas

Muchas gracias

 H o l a:

La macro es para windows.

Prueba la macro así como está. Si no te funciona, deberás buscar una solución para mac.

Lo he intentado en windows, lo hace bien pero hay filas que no calcula, ya está casi ...

Mencionaste esto:

"Tengo otra columna donde pueden aparecer esos nombres, y nunca hay dos, siempre son diferentes"

Entonces en las filas que no aparece el nombre es porque ya apareció en una fila anterior, por ejemplo, MIGUEL aparece en varias filas, ¿qué quieres que haga la macro que ponga a MIGUEL en todas las filas en las que aparece?

También el nombre "Rufo" no aparece en tu lista de nombres. Revisa que estén bien escritos los nombres en la columna "A".

Te anexo la macro actualizada para buscar varias veces el mismo nombre:

Sub BuscarNombre()
'Por.Dante Amor
    C1 = "A"    'Columna de nombres
    c2 = "B"    'Columna de Textos
    c3 = "C"    'Columna de resultados
    '
    For i = 2 To Range(C1 & Rows.Count).End(xlUp).Row
        Set r = Columns(c2)
        Set b = r.Find(Cells(i, C1), lookat:=xlPart)
        If Not b Is Nothing Then
            ncell = b.Address
            Do
                Cells(b.Row, c3) = Cells(i, C1)
                Set b = r.FindNext(b)
            Loop While Not b Is Nothing And b.Address <> ncell
        End If
    Next
    MsgBox "Búsqueda terminada", vbInformation, "BUSCAR NOMBRES"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas