Você pode fazer isso com uma fórmula de matriz. Faça o seguinte:
- Configure sua tabela em uma nova planilha. Crie cabeçalhos de coluna
1,2,3, etc. -
No cabeçalho
1(emA2), digite o seguinte.=IFERROR(INDEX(Sheet1!$A$1:$A$5,SMALL(IF(Sheet1!$B$1:$B$5=Sheet2!A$1,ROW(Sheet1!$B$1:$B$5)),ROWS(B$2:B2))),"")
onde
Sheet1é a planilha com os dados originais,A1:A5é a lista de nomes nos dados originais (incluindo o cabeçalho da coluna) eB1:B5é a lista de números nos dados originais (incluindo o cabeçalho da coluna ). -
Após digitar a fórmula, coloque o cursor na barra de fórmulas e pressione Ctrl + Deslocar + Enter . Isto irá inserir a fórmula como uma fórmula de matriz. A fórmula aparecerá na barra de fórmulas cercada por chaves.
-
Agora preencha esta fórmula para todas as colunas da sua nova tabela. Em seguida, preencha a fórmula até onde for necessário para que todos os nomes apareçam.
Explicação da fórmula:
A parte SMALL(IF(Sheet1!$B$1:$B$5=Sheet2!A$1,ROW(Sheet1!$B$1:$B$5)),ROWS(B$2:B2)) da fórmula examina os dados originais dos registros que correspondem ao número especificado pelo cabeçalho da coluna. Se uma correspondência for encontrada, o número da linha de cada correspondência é retornado quando ela é preenchida.
A parte INDEX(Sheet1!$A$1:$A$5, ...) da fórmula retorna o nome do número da linha encontrado.
A parte IFERROR(..., "") verifica o que é retornado por INDEX para um erro. Se um erro for encontrado, a fórmula não retornará nada.