Datos en Columnas Ordenadas y Emparejadas

Tengo dos columnas con datos una de ellas contiene 1500 números y la otra 5500 números, necesito hacer que en la columna con 5500 números se empareje con la columna de 1500 cuando los datos que contiene sean iguales (que de hecho lo son) y que las celdas que no tengan números iguales queden en blanco...

1 respuesta

Respuesta
1

Esto es lo que necesitas:

Puedes poner unos ejemplos para tener clara la idea. Menciona en qué columnas están tus datos.

Eso es lo que necesito Dante... Hablamos que una de las columnas contiene 5500 filas con números de cedulas de ciudadanos y que la otra solo contiene 1500 filas con los mismos datos (números de cedulas) que en algunos casos son iguales y en los demás que serán la mayoría, no coincidirán.. Muchas Gracias

No me comentaste en qué columnas está la información, así que vas a realizar lo siguiente:

En la columna A pon tus 5500 números

En la columna B pon tus 1500 números.

Ejecuta la siguiente macro:

Sub EmparejarColumnas()
'Por.Dante Amor
    Application.screenupdatin = False
    u = Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To Range("B" & Rows.Count).End(xlUp).Row
        Set b = Range("A1:A" & u).Find(Cells(i, "B"), lookat:=xlWhole)
        If Not b Is Nothing Then
            Cells(b.Row, "C") = Cells(i, "B")
        End If
    Next
    Application.screenupdatin = True
    MsgBox "terminado"
End Sub

Sigue las Instrucciones para ejecutar la macro

  1. Abre tu archivo 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. Para ejecutarla presiona F5

En la columna C tendrás la columna emparejada.

Saludos. Dante Amor

Disculpa.

Utiliza esta macro:

Sub EmparejarColumnas()
'Por.Dante Amor
    Application.ScreenUpdating = False
    u = Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To Range("B" & Rows.Count).End(xlUp).Row
        Set b = Range("A1:A" & u).Find(Cells(i, "B"), lookat:=xlWhole)
        If Not b Is Nothing Then
            Cells(b.Row, "C") = Cells(i, "B")
        End If
    Next
    Application.ScreenUpdating = True
    MsgBox "terminado"
End Sub

¡Gracias! Voy a probar recién ahora, en realidad están los 1500 en la A y los 5600 en la B... pero los cambio de lugar y listo...

Disculpa que no te haya pasado la info completa... volveré apenas la pruebe...

Gracias totales

Hola Dante ahí te paso una captura de pantalla de lo que la macros hizo con mis datos; como podrás notar en la imagen que te adjunto, en la columna B puse las Cedulas Originales que están correlativas o relacionadas con el poseedor de ese numero de cedula, el Sr. Pedro Acuña Franco; mi idea es, si se puede, que el comando o la macros busque en la columna A el numero 55690 por ejemplo y me lo ponga a su lado en la columna C o que ordene directo en la columna A y que como siempre, deje vacía las celdas que no coincidan o que no tengan par en la columna A... Gracias gracias

Te pregunté, necesitas esto:

Me dijiste que sí.

Ahora estás solicitando otra cosa que no entiendo.

Podrías crear una nueva pregunta y me explicas con detalle y nuevamente con ejemplos lo que necesitas.

Mis disculpas...

Tu en tu ejemplo, me pasaste una captura donde en la Columna A había una serie de números ordenados de 1 al 10 y en la B los números 3, 7 y 9 que luego al lado quedaron con su coincidencia de al lado... Perfecto

Ahora te paso una camptura nueva de pantalla donde

Columna A (1500) son los Datos que deberían quedar inmóviles y Columna B (5600 celdas) son las que deberían emparejarse con la A y coincidir y en caso de no haber coincidencias, quedar en blanco y los números que sobran en las 5600 celdas o sea que no tiene pareja, agruparse luego del ultimo numero de los 1500 de la Columna A... la idea es saber cuantas personas con los números de cedula de la columna A, están en el universo de números que representa la columna B (5600)... Ojala me puedas entender... de verdad necesito una mano con esto... Muchas Gracias

Sigo sin entender, en la otra imagen hablabas del número 55690, ese número está en la columna B, ¿quieres qué busque el número 55690 en la columna "A"?

Correcto Dante; ahora el Numero 55690 lo pase a la Columna A, entonces, lo que quiero que haga la fórmula o macros es que busque en la Columna B el Numero 55690 y que me lo empareje... Es saber cuales números coinciden en ambas columnas de modo tal a identificarlos, las que no en blnaco y los que sobran pues sobran... Por favor teme paciencia... Gracias

Disculpa, sigo sin entender. Quería entender solamente un ejemplo, pero ahora lo cambiaste de columna y no entiendo tu explicación, ya que no concluiste la explicación con el ejemplo del número 55690.

Podrías simplemente explicarme un ejemplo. Entiendo que lo debo hacer con miles de registros, pero si no sé cómo hacerlo con un registro, pues no lo voy a poder hacer con miles.

Así que enfoquémonos en este ejemplo 55690, dices que está en la columna A, quieres que lo busque en la columna B, ¿si lo encuentro qué hago? ¿Y si no lo encuentro qué hago?

Cuando te pregunto: ¿Qué hago?, no me digas "emparejar" porque no entiendo eso, quiero que me digas, si lo encuentras, entonces en la columna C haces: -y aquí pones una explicación-

Si no lo encuentras, haces: -aquí pones la explicación-

Hola Dante, antes que nada muchas gracias por la increíble paciencia que me tienes... Gracias

Bien aquí vamos...

Tenemos el 55690 en la "Columna A";

Si lo encuentras en la "Columna B", entonces en la "Columna C" haces que traiga el numero 55690 a la misma fila donde se encuentra en la "Columna A".

(que en la Columna A = 55690 y la Columna C = 55690)

Sin no lo encuentra en la "Columna B", entonces que la "Columna C" quede "0", siempre hablando de la misma fila donde se encuentra el numero.

(Columna A = 55690 y Columna C = 0)

Muchas Gracias nuevamente, espero haber sido mas claro en esa ocasión.

Utiliza esta macro

Sub EmparejarColumnas()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Columns("C").ClearContents
    u = Range("B" & Rows.Count).End(xlUp).Row
    For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
        Set b = Range("B1:B" & u).Find(Cells(i, "A"), lookat:=xlWhole)
        If Not b Is Nothing Then
            Cells(i, "C") = Cells(i, "A")
        End If
    Next
    Application.ScreenUpdating = True
    MsgBox "terminado"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas