Notifications
Clear all

COMO TRAZER MAIS DE UM RESULTADO DA PROCV

8 Posts
2 Usuários
0 Reactions
1,870 Visualizações
(@hungueria)
Posts: 3
Active Member
Topic starter
 

Olá Tenho uma planilha com a coluna B composta com datas de aniversário e a coluna C composta pelos nomes dos aniversariantes.

A função PROCV me traz somente a primeira correspondência, vi algumas pessoas sugerindo a utilização das funções INDICE e CORRESP, mas infelizmente não consegui aplicã-las com sucesso.

Por favor, me ajudem nesta solução.

Abraços

 
Postado : 06/05/2013 10:32 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se possivel post uma planilha exemplo de sua necessidada, como está e como espera receber as informações (a planilha deve ser compactada no formato zip, rar ou 7z.)
Tambem de uma vista nestes:
viewtopic.php?f=28&t=239
http://adilsonsoledade.blogspot.com.br/ ... zadas.html
http://guiadoexcel.com.br/filtro-avanca ... matriciais

 
Postado : 06/05/2013 11:02 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Eu usei um esquema que aprendi há pouco tempo, mas muito útil, utiliza o mesmo conceito de classificação por ranking.

Para tanto, não muito elegantemente eu usei algumas colunas adicionais, mas funciona que é uma maravilha.
O problema que existe é que as datas são iguais, por isso o PROCV não enxerga as seguintes, uma vez que encontra a data procurada.

A solução é exatamente essa, garantir que estas datas sejam todas diferentes. Mas como?
Numa coluna eu somo um bilionésimo da linha à data (o que não a muda, visto que 1/1000000000 é equivalente a menos de 1 segundo)
Uma vez feito isso, eu tenho garantia de que as datas são todas diferentes. Então eu recupero o número da linha de todas as datas que batem com a data solicitada, e classifico o número dessas linhas, colocando-os em ordem decrescente.
Então eu usei DESLOC numa coluna e usei ÍNDICE/CORRESP em outra, e você escolhe qual deseja utilizar.

Eu não usei o PROCV, pois ele é muito limitado e só faz busca da esquerda pra direita. Neste caso eu precisava da busca da direita pra esquerda.

Dá uma olhada no modelinho e veja se te atende.

p.s.1: pode excluir uma das colunas do Aniversariante (J ou L), pois uma não interfere na outra.
p.s.2: as outras colunas não devem ser apagadas, pois o cálculo depende delas para funcionar.
p.s.3: utilizei formatação condicional para passar a impressão de que a tabela cresce e diminui de acordo com seu conteúdo, mas limitei a quantidade de aniversariantes para 30. se quiser mais, é só arrastar mais pra baixo.
p.s.4: criei aniversários aleatórios totalizando 99 aniversariantes, mas este recurso vai funcionar pra quantos forem, desde que você sempre arraste as fórmulas adjacentes à tabela, para que enxerguem todas as linhas

 
Postado : 06/05/2013 12:17 pm
(@hungueria)
Posts: 3
Active Member
Topic starter
 

Fernando, obrigado cara.!!! vou testar com calma e te falo! mas ja de cara da pra ver que ficou massa.....Abs

 
Postado : 06/05/2013 12:45 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Fernando, interessante o critério utilizado, porem algumas considerações, que não afetam em nada o funcionamento, mas pode ser talvez um "Improvement".
No critério utilizado não é necessario a coluna C. Podendo a formula, na coluna D, ser aplicada diretamante sobre a data, na coluna A, que o retorno/resultado será o mesmo.
Para o "Ordenamento" , pode ser utilizado sem a coluna adicional E, se utilizar no criterio ordem Lin()-1;(MAIOR($D$2:$D$100;LIN()-1)).
"Economiza-se" assim 2 colunas adicionais.
Aqui não sei bem como me expressar; mas para que o cadastro possa ser utilizado em anos posteriores, ou utilizar cadastro de ano anterior, ou mesmo à partir de um cadastro de datas de nascimento, pode-se desvincular o ano (farmula da coluna d)da base do cadastro, (SE(DATA(ANO(Hoje());MÊS(A2);DIA(A2))=Data;LIN();0)

 
Postado : 06/05/2013 1:16 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Fernando, interessante o critério utilizado, porem algumas considerações, que não afetam em nada o funcionamento, mas pode ser talvez um "Improvement".

Vamos lá, adoro melhorar as coisas e usar o mínimo possível e atingir o máximo possível :)

No critério utilizado não é necessario a coluna C. Podendo a formula, na coluna D, ser aplicada diretamante sobre a data, na coluna A, que o retorno/resultado será o mesmo.

Você está coberto de razão, acho que na empolgação de soltar o resultado, não considerei essa possibilidade.

Para o "Ordenamento" , pode ser utilizado sem a coluna adicional E, se utilizar no criterio ordem Lin()-1;(MAIOR($D$2:$D$100;LIN()-1)).
"Economiza-se" assim 2 colunas adicionais.

Admito que pensei em usar o LIN()-1, se fosse pra mim, eu faria assim, mas imaginei que o hungueria poderia querer inserir linhas no topo, e aí, isso destruiria a classificação, mas concordo, a melhor opção é usar o LIN()-1.

Aqui não sei bem como me expressar; mas para que o cadastro possa ser utilizado em anos posteriores, ou utilizar cadastro de ano anterior, ou mesmo à partir de um cadastro de datas de nascimento, pode-se desvincular o ano (farmula da coluna d)da base do cadastro, (SE(DATA(ANO(Hoje());MÊS(A2);DIA(A2))=Data;LIN();0)

Exatamente, estes aniversários são todos do ano atual (neste caso, 2013), ou seja, ano que vem, se o usuário digitar uma data assim: 4/4 na célula da data, esta data será 4/4/14, e não aparecerá aniversariante nenhum. Então, pensando nisso resolvi fazer considerando a data em qualquer ano, independente se é o ano de HOJE() ou não. Ou seja, tirei o ano da jogada. Adotei o ano 2000 só por conveniência, poderia ter escrito qualquer ano ali e no nome definido como Data no Gerenciador de Nomes.

Com as melhorias propostas pelo Reinaldo (aliás, obrigado pelas dicas, Reinaldo), Hungueria, segue novo modelo, mais bacana que o primeiro.

:)

F.F.

 
Postado : 06/05/2013 1:51 pm
(@hungueria)
Posts: 3
Active Member
Topic starter
 

Muito obrigado Fernando e Reinaldo, trabalho colaborativo que deu um resultado bem bacana.

 
Postado : 06/05/2013 1:53 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Hungueria, clica na mãozinha e marca o tópico como resolvido, por favor.

Valeu,

F.F.

 
Postado : 06/05/2013 6:52 pm