[ingrese la descripción de la imagen aquí Tengo 2 listas con nombre y apellido, ahora quiero saber si alguien en list1 existe en list2 (Referencias)

Este es el código que estoy usando ahora mismo, pero el problema es (Referencias de Picture3)

Sub Find_Matches()
    Dim CompareRange As Variant, x As Variant, y As Variant

    Set CompareRange = Range("E1:F6")

    For Each x In Selection
        For Each y In CompareRange
            If x = y Then x.Offset(0, 1) = x
        Next y
    Next x
End Sub

Quiero un resultado como (Referencias de Imagen 4)

Donde solo llego a aquellos cuyo nombre y apellido son iguales

NOTA: En (imagen 3 y 4) mi código cambia

  Set CompareRange = Range("G2:H7")
1
Grover Reyes 17 ago. 2016 a las 08:40

2 respuestas

La mejor respuesta

Puedes probar esto también

Sub Find_Matches()
    Dim list1 As Range
    Dim list2 As Range
    Set list1 = Range("A1:B6")
    Set list2 = Range("E1:F6")

    For Each row1 In list1.Rows
        For Each row2 In list2.Rows
            If (row1.Cells(1) = row2.Cells(1) And row1.Cells(2) = row2.Cells(2)) Then
            row1.Cells(1).Offset(0, 2) = row1.Cells(1)
            row1.Cells(2).Offset(0, 2) = row1.Cells(2)
            Exit For
            End If
        Next row2

    Next row1

End Sub
0
Siva 17 ago. 2016 a las 06:30

No se necesita VBA

Digamos que su hoja de trabajo se ve así

enter image description here

Pon esta fórmula en la celda C1

=IF(ISERROR(MATCH(A1&"|"&B1,$E$1:$E$6&"|"&$F$1:$F$6,0)),"",A1)

Y presione CTRL + SHIFT + ENTER y arrastre la fórmula hacia abajo.

Coloque esta fórmula en la celda D1 y tire de la fórmula hacia abajo

=IF(C1<>"",B1,"")

Este es el resultado final

enter image description here

Lógica :

  1. Estamos realizando una búsqueda de dos columnas usando el operador &
  2. Estamos usando "|" para evitar falsos positivos. Por ejemplo, "Name1N" Col A y "ame2" en Col B, que después de concatenar sería el mismo que para "Name1" Col A y "Name2"
  3. En Col D solo estamos verificando si Col C está poblado. Si es así, simplemente extraiga los valores de Col B
  4. La primera fórmula es una fórmula de matriz y, por lo tanto, estamos usando CTRL + SHIFT + ENTER en lugar de solo ENTER
3
Siddharth Rout 17 ago. 2016 a las 06:27