Combina 2 hojas de Excel con valores comunes en una columna

0

Tengo 2 hojas de excel. Quiero combinarlos en base a valores comunes en una columna en particular.

Ejemplo:

Si Excel-A tiene valores como este.

orderNo  Product

C1-231  Spares
C1-232  Back-Ups
C1-242  SmatTerminal

y Excel-B como

Type            Activity       orderNo      Date

Standard        Maintenance     C1-230     2012-12-01
Standard        Maintenance     C1-231     2012-12-01
Standard        Maintenance     C1-232     2012-12-01
Standard        Quality         C1-240     2012-12-01

Entonces quiero mi archivo de salida como

orderNo   Product           Type             Activity    orderNo       Date

C1-231    Spares            Standard        Maintenance  C1-231     2012-12-01
C1-232    Back-Ups          Standard        Maintenance  C1-232     2012-12-01
C1-242    SmatTerminal       
                            Standard        Maintenance  C1-230     2012-12-01
                            Standard        Quality      C1-240     2012-12-01

No sé cómo combinarlos. ¿Alguien, por favor, guíame para lograr esto ...?

CarlJohn
fuente
Puede ser VBA o algún otro ... Solo quiero la salida ...

Respuestas:

0

En VBA ... lo haré en 2 bucles.

Suponemos que excel A es Hoja1 sobresale B es Hoja2 y su hoja de resultados es Hoja3 .. y empezar en 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 .. esta ayuda!

matzone
fuente