Minha situação: recebi uma enorme planilha Excel de um fabricante de produtos para minha loja online. Este formato:
product ID | price | name | ...
Toda semana o fabricante me envia uma lista atualizada com novos produtos. Portanto, preciso saber quais produtos são novos nessa lista. Então, o que preciso é de um trecho de código, que faça o seguinte:
- Vou inserir a lista de produtos antiga na planilha1 (manualmente)
- Vou inserir a nova lista de produtos na planilha2 (manualmente)
- Compare os IDs dos produtos da Planilha1 e Planilha2
- Insira os produtos (linhas) da nova lista (Planilha2) na Planilha3, que não estão presentes na lista antiga (Planilha1)
Portanto, o resultado na Plan3 seria todos produtos novos. Espero que você possa me empurrar na direção certa.
Cumprimentos
Responder1
Acho que você pode precisar de algo assim:
=VLOOKUP(Sheet1!A1:A100,Sheet2!A1:F100,6,FALSE)
Claro que você também pode resolver isso usando VBA com botões e todo tipo de coisas sofisticadas.
Responder2
Na verdade, eu faria isso de uma maneira totalmente diferente usando o suplemento PowerQuery da Microsoft, mas não sei se ele funciona bem no Excel 2010 (não funcionaria no Excel 2007). Com isso você pode anexar consultas com agrupamento no ID do produto para obter uma lista exclusiva.
A outra maneira de fazer isso é manter as planilhas em arquivos diferentes e usar a ferramenta de consulta do Excel para fazer uma consulta de junção das duas tabelas em uma nova tabela.
De qualquer forma, depois de ter sua nova tabela, você a salva, preparando-a para a próxima mesclagem.
Responder3
Em Sheet2
(item atualizado), adicione uma coluna D que verifica se o produto é novo:
=MATCH(A2,Sheet1!$A:$A,0)>0
Adicione uma coluna E que forneça aos TRUE
valores da coluna D um identificador exclusivo
=D5&COUNTIF(D$2:D2)
Agora vá para Sheet3
(os novos itens) e coloque uma coluna de índice, digamos, na coluna E com valores TRUE1
, TRUE2
, TRUE3
e assim por diante, quantos você acha que precisará (por exemplo, se um dia houver 20 novos itens e você só subiu para TRUE15
, então você perderá 5 itens).
Você pode então trazer os novos itens com:
=INDEX(Sheet2!A:A,MATCH($E2,Sheet2!$E:$E,0))