Comparar datos de la Hoja2 con la Hoja1 y contar coincidencias

Necesito comparar los datos de las columnas A a la F de la hoja 1 con las columnas A a la F de la Hoja 2, el resultado de las coincidencias contarlas y colocarlos en la columna G de la Hoja 2. Y así sucesivamente repetir el mismo procedimiento hasta que no haya más datos en las columnas de la Hoja 2, la secuencia seria así:

Columnas A a la F de la Hoja 1 con las Columnas A a la F de la Hoja 2 y las coincidencias contarlas y colocarlas en la columna G

Columna A a la F de la Hoja 1 con las Columnas H a la M de la Hoja 2 y las coincidencias contarlas y colocarlas en la columna N

Hasta que no haya datos en las columnas de la Hoja 2

Adjunto ejemplo 

1 respuesta

Respuesta
2

¿En tu ejemplo existe alguna coincidencia?

Puedes mostrarla.

A qué te refieres con "contarlas" puedes poner imágenes con ejemplos de esas cuentas. Es decir, debes poner varios ejemplos que cumplan con las coincidencias y que en el ejemplo se vean reflejados los resultados.

Buen día, Dante, te envío la modificación para que puedas confeccionar la macro, lo modifique para hacer todo el procedimiento en la hoja 1, se comparan las 6 primeras celdas de cada fila( A a la F)  con el resto y se cuentan cuantas son iguales hasta que no haya mas datos desde la celda H repitiendo el mismo procedimiento, yo llego hasta la celda BJ,  pero puede haber mas, si te parece lo puedo ingresar yo como cuadro de dialogo el rango, para mi es lo mismo. Te ejemplifique las primeras 3 filas dado que es todo igual.

Ya vote porque se que la macro va a funcionar 

Prueba lo siguiente:

Sub Contar_Coincidencias()
'DECLARACIÓN DE VARIABLES
  Dim a As Variant, b As Variant
  Dim i As Long, j As Long, k As Long, lr As Long, n As Long
  Dim dic As Object
  '
'ENTRADA DE DATOS
  Set dic = CreateObject("Scripting.Dictionary")
  lr = Range("A" & Rows.Count).End(3).Row
  a = Range("A2:F" & lr).Value2
  b = Range("H2", Cells(lr, Cells(2, Columns.Count).End(1).Column + 1)).Value2
  '
  For i = 1 To UBound(a, 1)
    For j = 1 To 6
      dic(i & "|" & a(i, j)) = i
    Next
  Next
  '
'PROCESO
  For i = 1 To UBound(b, 1)
    n = 0
    For j = 1 To UBound(b, 2)
      If dic.exists(i & "|" & b(i, j)) And j Mod 7 <> 0 Then n = n + 1
      If j Mod 7 = 0 Then
        b(i, j) = n
        n = 0
      End If
    Next
  Next
  '
'SALIDA
  Range("H2").Resize(UBound(b, 1), UBound(b, 2)).Value = b
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas