Eu tenho uma planilha Excel onde o ID de uma planilha é usado como referência na próxima planilha. Os Ids são sequenciais. Assim :
Sheet 1 Sheet 2
ID Name ID Sheet_1_ID Text
1 ABC 1 1 asd
2 XYZ 2 2 dsa
3 PQR 3 2 sadas
4 LMN 4 3 asdas
5 3 asd
6 4 asd
Agora, por algum motivo, quero alterar alguns dos IDs da planilha 1 e quero ser substituído na planilha 2. Basicamente, tenho uma lista como:
OldID NewID
1 23
2 24
3 25
4 26
A única maneira que encontrei é usar o recurso localizar e substituir do Excel, mas consome muito tempo.
Existe alguma fórmula, script ou pequeno trecho de código que possa ser feito para conseguir isso.
Responder1
Se todos os OldIDs forem exclusivos, adicione uma coluna auxiliar a cada planilha com o seguinte (supõe que a lista OldID/NewID esteja na Planilha3, com OldIDs na coluna A e NewIDs na coluna B, e OldIDs na planilha atual estão na coluna A começando na linha 2):
=VLOOKUP(A2,Sheet3!A:B,2,FALSE)
Efetivamente, isso se traduz em: "Pegue o valor em A2 na planilha atual, encontre-o na coluna mais à esquerda de A:B na Planilha3 e traga de volta o valor correspondente na segunda coluna de A:B na Planilha3". O parâmetro FALSE especifica apenas a aceitação de dados onde umCombinação exataé encontrado para A2. (Contraintuitivo, sim.)
Depois de definido para a linha 2, copie-o para o resto da planilha. Depois de verificar se está funcionando corretamente, basta copiar os dados importados e usar "Colar valores" para substituir a coluna de IDs.