Comparar 2 columnas dando como resultado la celda más similar

Quisiera saber si se puede compara 2 columnas, que de la primera que tenga como ejemplo 5 palabras, busque en la segunda, la que tenga la mayor cantidad de esas palabras y las coloque en otra columna. Con la función consulta no me da ningún resultado.

1 respuesta

Respuesta
1

H o l a:

Para lograr lo que necesitas, se tiene que hacer una macro. Pero para hacer la macro necesito que pongas una imagen de cómo tienes la primera columna, como tienes la segunda columna y qué esperas de resultado en la otra columna.

Procura que en la imagen se vean las filas y las columnas de excel.

Hola, lo que preciso es comparar 2 listas de precios, pero para no buscar 1 por 1, quería saber si de la columna "c" se puede buscar cual es la descripción más aproximada en la columna "e" y que eses resultado lo coloque en la columna"g". La columna c tiene 2200 filas y la e 1600. Desde ya muchas gracias por tu tiempo. Carlos

H o l a:

Te anexo la macro.

Sub CompararColumnas()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.StatusBar = False
    u1 = Range("C" & Rows.Count).End(xlUp).Row
    u2 = Range("E" & Rows.Count).End(xlUp).Row
    For i = 3 To u1
        Application.StatusBar = "Registros procesados: " & i & " de: " & u1
        Columns("Z").Clear
        pals = Split(Cells(i, "C"), " ")
        For j = LBound(pals) To UBound(pals)
            Set r = Range("E3:E" & u2)
            Set b = r.Find(pals(j), lookat:=xlPart)
            If Not b Is Nothing Then
                ncell = b.Address
                Do
                    Cells(b.Row, "Z") = Cells(b.Row, "Z") + 1
                    Set b = r.FindNext(b)
                Loop While Not b Is Nothing And b.Address <> ncell
            End If
        Next
        wmax = Application.Max(Range("Z3:Z" & u2))
        If wmax <> "" Then
            fila = Range("Z3:Z" & u2).Find(wmax, lookat:=xlWhole).Row
            Cells(i, "G") = Cells(fila, "E")
        End If
    Next
    Application.StatusBar = False
    Columns("Z").Clear
    MsgBox "Comparación terminada", vbInformation, "COMPARAR COLUMNAS"
End Sub

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: CompararColumnas
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

Cuando la macro esté en ejecución, en la parte inferior izquierda de excel, verás el avance de cuántos registros ha procesado.


hola, ejecute la macro y me tira este error 

Se ha producido el error’91’ en tiempo de ejecución:

Variable de objeto o bloque With no establecido

si le pongo finalizar no me modifica nada , si le pongo depurar me muesta la macro y lo que puse en negrita aparece en amarillo.

If wmax <> "" Then

           fila = Range("Z3:Z" & u2).Find(wmax, lookat:=xlWhole).Row

           Cells(i, "G") = Cells(fila, "E")

¿Se detuvo la macro al inicio o si te puso algunos resultados en la columna G?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas