Ícono del sitio Formulas Excel

Cruzar dos bases de datos en excel

Síguenos y dale Like:
20k
7400
1k

Cruzar dos bases de datos en excel es una tarea muy requerida, en Aplicaciones Contables suele ser muy necesaria para depurar registros. En algunos casos se desea saber cuales datos se repiten, cuantas veces se encuentra un dato en la otra base de datos. Para otras situaciones lo que se desea es eliminar los duplicados ( los que también están en la otra lista ). En fin, son muchas las razones y los resultados que se desean obtener al cruzar dos bases de datos en excel.

Veremos un caso sobre el cruce de bases de datos en excel, buscamos en este ejemplo, es cruzar dos listados  con nombre y correo electrónico. Los registros de una lista pueden estar repetidos en la otra, en ese caso la idea es identificarlos de algún modo.

1.- Macro para cruzar bases de datos y marcar cada registro encontrado.

Qeremos simplemente poner un fondo verde a cada registro que también este en la otra lista de datos, asi identificamos cada registro duplicado.

Esto se puede hacer fácilmente mediante el uso de una macro.

A continuación les dejo un vídeo donde se explican algunas opciones para cruzar bases de datos en excel con el uso de macros y formulas.

Link de descarga del ejemplo al final del post

El proceso es realmente simple, solo se debe buscar el dato de una tabla en la otra, si lo encuentra, entonces se decide que hacer. Aqui solo poner un color de fondo a la celda, pero igual puede ser cualquier otro procedimiento, como poner un texto en la celda de otra columna, eliminar la fila, etc.

Ya en esa parte depende de tus necesidades al hacer el cruce de datos, la parte fundamental el el ciclo que recorre los datos y la función que hace la búsqueda.

Código VBA para cruzar bases de datos

Sub CruzaBDColorFondo()
  Application.ScreenUpdating = False
  Sheets("depura").Activate
  Range("B2").Activate
  Do While ActiveCell.Value <> ""
    If Not IsError(Application.VLookup(ActiveCell, Range("base"), 1, False)) Then
      ActiveCell.Interior.ColorIndex = 50
      ActiveCell.Offset(1).Activate
    Else
      ActiveCell.Offset(1).Activate
    End If
  Loop
  Application.ScreenUpdating = True
End Sub

Lo que hace este código es recorrer la columna de correo electrónico de la hoja “depura” y busca cada uno de ellos en la base de datos de la hoja “bd”. Si el correo es encontrado deberá poner un fondo verde a la celda activa. Si no  se pasa al siguiente, la macro se detiene cuando encuentra una celda vacía.

En el código de la macro encontramos Range(“base”) ,  “base” corresponde al nombre que le hemos dado al rango de datos donde esta el correo electrónico de la base de datos en la hoja “bd” ( que es donde vamos a buscar los registros de la otra hoja ). Para poner ese nombre de rango, solo debemos seleccionar el rango de celdas donde están los correos, en este caso es la columna B de de la hoja “bd” y tecleamos el nombre “base” en el cuadro de nombres ( justo arriba de la celda A1 )

En la hoja donde tenemos los registros que deseamos cruzar, hay un botón para ejecutar la macro, al presionar ese botón, la macro deberá ejecutar el código anterior .

2.-  Macro para cruzar bases de datos y poner un texto cuando el dato sea encontrado.

En este caso se repite el mismo ciclo para hacer la búsqueda, pero cada vez que un dato sea encontrado, en la columna de a lado deberá poner algún texto que nos indique que ese dato también esta en la otra lista de datos.

Así que se usa el mismo código anterior y solo cambiamos esta linea

ActiveCell.Interior.ColorIndex = 50

Por esta

ActiveCell.Offset(0, 1) = "Repetido"

3.- Macro para cruzar bases de datos y eliminar los duplicados.

En este cruce de datos, lo que se busca es eliminar de una lista los registros que sean encontrados en la otra, para esto seguiremos usando el mismo código, solo con un pequeño cambio.

Cambiar esta parte del código

ActiveCell.Interior.ColorIndex = 50
ActiveCell.Offset(1).Activate

Por esta otra.

ActiveCell.EntireRow.Delete

4.- Cruzar bases de datos con formulas.

También se pueden cruzar dos bases de dato en excel usando formulas, en este caso es para saber cuales registros se encuentran en ambas bases de datos, para esto usamos una formula que deberá poner un “SI” cuando el registro se encuentre.


Para este caso usamos esta formula: =SI(CONTAR.SI(base,B2)>=1,”SI”,””)
Si el correo se encuentra por lo menos una vez en la otra hoja, pondrá un SI, si el conteo es cero no pone nada.

Otra opción es poner solo la cantidad de veces que se encuentra el correo en la otra hoja, si es uno o mas, sabremos que el registro también esta en la otra hoja.
Esta es la formula: =CONTAR.SI(base,B2)

Con estas dos ultimas opciones, se puede usar filtro avanzado para mostrar solo los registros que tienen un SI o los que tienen por lo menos 1.

Descargar macro para cruzar bases de datos

Síguenos y dale Like:
20k
7400
1k
Salir de la versión móvil