Manipular datos en Excell

25/11/2008 - 19:25 por cojeda | Informe spam
Hola amigos necesito ayuda con lo siguiente:

En Hoja 1 columna A tengo un ID único
En Hoja 2 columna A tengo el ID repetido varias filas

Necesito que por cada ID encontrado en Hoja 1 me agregue en cada
columna los datos que existen en la Hoja 2.

Ejemplo:
Hoja 1
ID
100
200
300
400
500

Hoja 2
ID Dato
100 Berlin
100 Bon
100 Hamburgo
200 Madrid
200 Barcelona
300 Paris
300 Lyon
300 Marsella
300 Burdeos
400 Londres
400 Manchester
500 Moscu

Hoja 3
ID Dato 1 Dato 2 Dato 3 Dato 4 ... Dato N
100 Berlin Bon Hamburgo
200 Madrid Barcelona
300 Paris Lyon Marsella Burdeos
400 Londres Manchester
500 Moscu

Gracias por la ayuda
 

Leer las respuestas

#1 Héctor Miguel
25/11/2008 - 20:40 | Informe spam
hola, cristian !

(creo que) la hoja1 esta "de sobra" ?
una alternativa podria ser elaborar una tabla con formulas y nombres definidos... o
prueba con una macro +/- como la siguiente ejecutada desde la hoja2 como activa...

Sub Transponer_CiudadesPorCodigo()
Application.ScreenUpdating = False
Dim Inicio As Long, nCols As Byte, nFila As Integer
With ActiveSheet
Worksheets.Add(After:=Worksheets(.Index)).Name = "Resumen"
.Range(.[a1], .[a65536].End(xlUp)).AdvancedFilter _
Action:=xlFilterCopy, CopyToRange:=[a1], Unique:=True
[a:a].Sort Key1:=[a2], Order1:=xlAscending, Header:=True
For nFila = 2 To [a65536].End(xlUp).Row
Inicio = Application.Match(Range("a" & nFila), .Range("a:a"), 0)
nCols = Application.CountIf(.Range("a:a"), Range("a" & nFila))
If nCols > 1 Then
Range("b" & nFila).Resize(, nCols).Value = _
Application.Transpose(.Range("b" & Inicio).Resize(nCols).Value)
Else: Range("b" & nFila) = .Range("b" & Inicio)
End If
Next
End With
End Sub

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ OP __
En Hoja 1 columna A tengo un ID unico. En Hoja 2 columna A tengo el ID repetido varias filas
Necesito que por cada ID encontrado en Hoja 1 me agregue en cada columna los datos que existen en la Hoja 2.
Ejemplo:
Hoja 1
ID
100
200
300
400
500

Hoja 2
ID Dato
100 Berlin
100 Bon
100 Hamburgo
200 Madrid
200 Barcelona
300 Paris
300 Lyon
300 Marsella
300 Burdeos
400 Londres
400 Manchester
500 Moscu

Hoja 3
ID Dato 1 Dato 2 Dato 3 Dato 4 ... Dato N
100 Berlin Bon Hamburgo
200 Madrid Barcelona
300 Paris Lyon Marsella Burdeos
400 Londres Manchester
500 Moscu

Preguntas similares