No VBA ... eu faço em 2 loops
Assumindo que o excel A é Planilha1 , o excel B é Planilha2 e sua planilha de resultados é Planilha3 .. e Iniciar na A2
Sub MergeIt()
Dim LastA,LastA2 as Range
Dim y,y2 as Integer
Set LastA = Range("Sheet1!A65536").End(xlUp)
Set LastA2 = Range("Sheet2!A65536").End(xlUp)
For y = 2 to LastA.Row
Sheet3!Cells(y,1) = Sheet1!Cells(y,1)
Sheet3!Cells(y,2) = Sheet1!Cells(y,2)
For y2=2 To LastA2
If Sheet2!Cells(y2,3) = Sheet1!Cells(y,1) Then
Sheet2!Cells(y2,5) = "v"
Sheet3!Cells(y,3) = Sheet2!Cells(y2,1)
Sheet3!Cells(y,4) = Sheet2!Cells(y2,2)
Sheet3!Cells(y,5) = Sheet2!Cells(y2,3)
Sheet3!Cells(y,6) = Sheet2!Cells(y2,4)
End If
Next
Next
y= y + 1
For y2 = 2 to LastA2
If Sheet2!Cells(y,5) <> "v" Then
Sheet3!Cells(y,3) = Sheet2!Cells(y2,1)
Sheet3!Cells(y,4) = Sheet2!Cells(y2,2)
Sheet3!Cells(y,5) = Sheet2!Cells(y2,3)
Sheet3!Cells(y,6) = Sheet2!Cells(y2,4)
End If
Next
End Sub
Espero .. espero .. essa ajuda!