Excel: combine 2 hojas en 1 según la identificación de la persona y cree nuevas filas si la identificación se encuentra más de una vez

Excel: combine 2 hojas en 1 según la identificación de la persona y cree nuevas filas si la identificación se encuentra más de una vez

Tengo datos de persona y datos de dirección en 2 hojas diferentes que deseo combinar en 1. El problema es que cada persona puede tener más de 1 dirección.

Por ejemplo, si tengo los siguientes 2 conjuntos de datos:

**Person Data**
PersonID         Name

1          John Smith
2          Mark Brown

**Address Data**
PersonID      Address

1                  UK
1              France
1                 USA
2                  UK

Necesito que se unan como tal:

**Combined Data**
PersonID      Name       Address

1       John Smith            UK
1       John Smith        France
1       John Smith           USA
2       Mark Brown            UK

¿Hay alguna forma de hacer esto mediante fórmulas de Excel? Gracias

Respuesta1

Parece que simplemente desea agregar el nombre de la persona a cada fila de la lista de datos de direcciones. Si es así, esto es fácil.

Suposiciones

  • Los datos de la persona están ordenados y son consecutivos (es decir, el ID de persona 1 se encuentra en la fila 2, el ID de persona 100 se encuentra en la fila 101); si esto no es cierto, consulte la última sección.
  • Los datos de la dirección están ordenados.

Solución

**Combined Data Sheet**
PersonID          Name                            Address
=$Addresses!A2    =OFFSET($Names!$B$1, A2, 0)     =$Addresses!B2

Y copiar las fórmulas hacia abajo por supuesto.

Explicación

La primera y la última columna simplemente se copian de la hoja Direcciones. La OFFSETfunción le permite bajar o cruzar una cierta cantidad. En este caso, sabemos que la Persona correcta estará en la fila de PersonID + 1. Como comenzamos en la fila 1 ( $Names!$B$1), el +1 es innecesario.

ID de persona no consecutivas

La VLOOKUPfunción se puede utilizar para buscar un PersonID y luego devolver otra columna en la misma fila. En este caso, algo como:

=VLOOKUP(A2, Names!$A$1:$B$1000, 2, FALSE)

información relacionada