![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](https://rvso.com/image/1618340/Excel%3A%20combine%202%20hojas%20en%201%20seg%C3%BAn%20la%20identificaci%C3%B3n%20de%20la%20persona%20y%20cree%20nuevas%20filas%20si%20la%20identificaci%C3%B3n%20se%20encuentra%20m%C3%A1s%20de%20una%20vez.png)
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 OFFSET
funció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 VLOOKUP
funció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)