![Excel - Combine 2 planilhas em 1 com base no ID da pessoa e crie novas linhas se o ID for encontrado mais de uma vez](https://rvso.com/image/1618340/Excel%20-%20Combine%202%20planilhas%20em%201%20com%20base%20no%20ID%20da%20pessoa%20e%20crie%20novas%20linhas%20se%20o%20ID%20for%20encontrado%20mais%20de%20uma%20vez.png)
Tenho dados pessoais e dados de endereço em 2 planilhas diferentes que desejo combinar em 1. O problema é que cada pessoa pode ter mais de 1 endereço.
Por exemplo, se eu tiver os 2 conjuntos de dados a seguir:
**Person Data**
PersonID Name
1 John Smith
2 Mark Brown
**Address Data**
PersonID Address
1 UK
1 France
1 USA
2 UK
Eu preciso que eles sejam unidos como tal:
**Combined Data**
PersonID Name Address
1 John Smith UK
1 John Smith France
1 John Smith USA
2 Mark Brown UK
Existe alguma maneira de fazer isso através de fórmulas do Excel? Obrigado
Responder1
Parece que você deseja simplesmente adicionar o nome da pessoa a cada linha da lista de dados de endereço. Se sim, isso é fácil.
Suposições
- Os dados pessoais são classificados e consecutivos (ou seja, PersonID 1 está localizado na linha 2, PersonID 100 está localizado na linha 101) — se isso não for verdade, consulte a última seção.
- Os dados de endereço são classificados
Solução
**Combined Data Sheet**
PersonID Name Address
=$Addresses!A2 =OFFSET($Names!$B$1, A2, 0) =$Addresses!B2
E copie as fórmulas para baixo, é claro.
Explicação
A primeira e a última colunas são simplesmente copiadas da planilha Endereços. A OFFSET
função permite que você desça ou atravesse um determinado valor. Neste caso, sabemos que a Pessoa correta estará na linha PersonID + 1. Como começamos na linha 1 ( $Names!$B$1
), o +1 é desnecessário.
IDs de pessoas não consecutivas
A VLOOKUP
função pode ser usada para procurar um PersonID e retornar outra coluna na mesma linha. Neste caso, algo como:
=VLOOKUP(A2, Names!$A$1:$B$1000, 2, FALSE)