Objetivo: Realizar o filtro de dados a partir de uma base e trazer estes dados por uma pesquisa simples.
Esta é uma solução bastante simples, mas bastante inteligente que eu vi pela primeira vez em uma planilha do meu amigo Afonso Pinheiro Gonçalves, e que tive a sugestão de publicação pelo Paulo César de Carvalho, outro amigo e entusiasta do Excel.
A idéia é a partir de uma base de dados em Excel executar um filtro de de uma lista de validação e criar um relatório destes dados.
Realize o download do arquivo e acompanhe as explicações.
Baixe a planilhaPara isso foram feitas 4 tarefas:
1. Na lista de dados foram criadas duas colunas, Filter e Sequence e utilizadas as seguintes fórmulas:
Filter: =SE(SEERRO(PROCURAR(Dados!$C$1;Sheet1!C2;1);”X”)=1;”X”;””) => Esta fórmula verifica se o campo da coluna C corresponde ao filtro. O * é utilizado como coringa, e no caso significa qualquer informação na coluna.
Sequence: =SE(P3=”X”;MÁXIMO($A$2:A2)+1;””) => Nesta fórmula ele verifica se a coluna Filter está preenchida com o valor X que demonstra que foi realizado o filtro. Fazendo isso esta coluna é preenchida com números sequenciais dos dados que foram filtrados.
2. Filtro de dados -> na célula C1 foi criada uma lista de dados clicando em Dados->Validação de Dados e selecionando uma lista com os CustomerID sem repetição.
Este campo indicará o filtro que deve ser realizado na lista.
3. Foi copiado o cabeçalho da base de dados para a linha 3, este servirá de índice para a fórmula PROCV trazer os dados de cada campo filtrado.
4. Criar uma coluna seqüencial na coluna A com os dados de 1 até o máximo da lista de dados e utilizar para cada célula destas linhas a fórmula:
=SEERRO(PROCV($A4;Sheet1!$A:$P;CORRESP(C$3;Sheet1!$1:$1;0);0);””) => Esta fórmula realiza a busca das informações de cada coluna para cada linha apontando em $A4 o índice da linha sequencial e na fórmula CORRESP ele traz o número correspondente ao índice da coluna na lista de dados.
Abraço
Marcos Rieper