Tenho 2 folhas de dados de excel com milhares de linhas.
Cada linha corresponde a uma pessoa. Cada pessoa tem um número de identificação único.
Precisava de 2 coisas:
A- Selecionar as pessoas que constam das duas tabelas
B- Criar uma terceira tabela em que constassem apenas as pessoas que estão presentes em ambas tabelas que tenho e, na mesma linha, os dados das 2 tabelas referentes a essa pessoa.
Exemplo
Tabela 1 Tabela 2 --> Tabela 3
Pessoa Valor Pessoa Altura Pessoa Valor Altura
3 4 2 160 5 5 165
5 5 4 170 8 6 184
8 6 5 165
9 9 8 184
Alguém consegue ajudar?
Como Auto disse a maneira mais elegante é construir uma macro.
Com funções do Excel tive de criar uma coluna extra
Admiitindo que tens os nºs das pessoas da tabela 1 na coluna A (1 a 13) e da tabela 2 na coluna C (1 a 13), a coluna intermedia é E e coluna final é G
1) na célula E1: =IF(ISERROR(MATCH(A1;C$1:C$13;0));"";A1) - vai ver se ha algum match entre A1 e coluna de pessoas da tabela 2 e assim sucessivamente. Se sim coloca o nº da pessoa se não deixa célula em branco
o problema é que os nºs não ficam necessariamnte consecutivos podendo haver células em branco pelo meio
2) Na célula F1: =IF(ISNUMBER(SMALL(E$1:E$13;ROW()));SMALL(E$1:E$13;ROW());""). Se na coluna obtida no passo 1 quando posicionado na linha 1 (ROW()) vai obter o valor mais pequeno da coluna E. Passando para F2 ROW() vai dar 2 e vai buscar o segundo valor mais pequeno e assim sucessivamente. Poder-se-ia usar apenas SMALL(E$1:E$13;ROW()), mas nesse caso depois de chegar ao ultimo nº com devolve #NUM (pode ser corrigido depois)
3) usar as funções Vlookup da maneira habitual.
Nota: se as tabelas començarem na linha L ==> ROW()-L+1