
Tenho uma planilha de dados que possui muitas colunas que podem mudar de posição. Para facilitar o uso, quero criar uma segunda planilha que mantenha as colunas em uma ordem especificada. Posso contar com que os títulos das colunas permaneçam iguais, então quero copiar as colunas com base no título, ou melhor, a primeira célula da coluna corresponde a uma string.
Como exemplo, três das colunas da folha 1 são
id name due date
Mas em outra instância da folha 1 eles podem aparecer como
id due date name
Quero que minha segunda planilha especifique que a primeira linha é 'id', a segunda é 'nome' etc. Tentei usar o hlookup, mas só achei útil para preencher uma única célula, arrastar a fórmula não funcionou muito bem para mim. Alguma idéia de como fazer isso usando funções no Excel? Prefiro não usar uma macro, a menos que seja absolutamente necessário.
Responder1
=HLOOKUP(A$1,Sheet1!$A:$C,ROW(),FALSE)
À medida que você preenche a fórmula, ROW() atua como um deslocamento para observar a próxima coluna da sua tabela.
Responder2
Eu me deparo com isso com frequência. Uma maneira fácil de resolver isso é fazer com que as colunas retornem à primeira página com deslocamento. Supondo esses dados variáveis na Planilha1, em A1:Q499, depois na Planilha 2, eu colocaria isso na célula B2:
OFFSET(Sheet1!$A$2,0,MATCH(A$1,Sheet1!$A$1:$Q$1,0)-1,499,)
Para algo mais sofisticado, você pode colocar proteção de célula em Sheet2, A1:Q1, que permite apenas valores de uma lista, e usar Sheet1 A1:q1 como essa lista.