none
Encontrar uma(a primeira) correspondência após uma data RRS feed

  • Pergunta

  • Boa Tarde Pessoal, estou com uma incógnita no excel, tentei fazer via VBA e fórmulas porém não encontrei um jeito de realizar.

    É o seguinte: Possuo duas base de dados

    base 1 - Coluna chave e uma data

    base 2 - Coluna com a mesma chave só que uma mesma chave com várias datas diferentes

    Preciso procurar da base 1 e encontrar na 2 a primeira data após a data da base 1

    Como se fosse um PROCV porém sem retornar o primeiro valor encontrado, e sim com uma condição: 

    Buscar e encontrar o primeiro valor após a Data de Tratamento:

    Segue exemplo:

    Base 1

    Ativo Data tratamento da ocorrência/ Data da primeira ocorrência após a de tratamento
    0522708HFE 16/05/2018  
    0523194HFE 07/05/2018  
    0523194HFE 09/05/2018  
    0527971HFE 06/05/2018  

    Base 2

    Loc. Data ocorrência
    0527971HFE 29/05/2018
    0527971HFE 16/05/2018
    0527971HFE 03/05/2018
    0527971HFE 02/05/2018
    0527971HFE 25/04/2018

    Neste caso eu queria que encontrasse a primeira data após a Data de Tratamento, que seria 16/05/2018.

    Se alguém souber de algum jeito por favor!!!

    sexta-feira, 1 de junho de 2018 22:58

Respostas

  • Boa tarde Alexandre.

    O seu problema parece ser adequado para o uso de fórmulas matriciais (Ctrl+Shift+Enter). Basicamente a ideia seria obter o mínimo entre os registros que tenham a mesma chave e que a data seja maior que a de referência. Seria algo do tipo:

    {=MÍNIMO(SE((A3=$A$11:$A$15)*($B$11:$B$15>B3);$B$11:$B$15;1000000))}

    A fórmula em questão pode ser melhorada, como por exemplo para a avaliação se a chave existe ou não (no caso, ela retornará o resultado 1000000=26/11/4637, como na imagem abaixo).

    Desta forma atende?


    Filipe Magno

    sábado, 2 de junho de 2018 17:44

Todas as Respostas

  • Boa tarde Alexandre.

    O seu problema parece ser adequado para o uso de fórmulas matriciais (Ctrl+Shift+Enter). Basicamente a ideia seria obter o mínimo entre os registros que tenham a mesma chave e que a data seja maior que a de referência. Seria algo do tipo:

    {=MÍNIMO(SE((A3=$A$11:$A$15)*($B$11:$B$15>B3);$B$11:$B$15;1000000))}

    A fórmula em questão pode ser melhorada, como por exemplo para a avaliação se a chave existe ou não (no caso, ela retornará o resultado 1000000=26/11/4637, como na imagem abaixo).

    Desta forma atende?


    Filipe Magno

    sábado, 2 de junho de 2018 17:44
  • Show de bola, era isso mesmo!

    Tentei utilizar a função minimo mas estava fazendo beeem diferente dessa ai

    Só não entendi a lógica de multiplicar a range da chave pela range da data...poderia explicar??

    domingo, 3 de junho de 2018 17:08
  • Boa tarde Alexandre.

    A lógica é bem simples: o operador de multiplicação "*" faz o papel lógico de "&", ou seja, a função "SE" retornará verdadeiro para todos os elementos que forem verdadeiros no primeiro parênteses ao mesmo tempo que forem verdadeiros no segundo. Lembre-se que para o Excel uma análise do tipo "A1=B1" retorna ou "Verdadeiro" ou "Falso", que pode ser entendido também como "1" ou "0". Assim "1*1 = 1", "1*0 = 0*1  = 0*0  = 0".

    Para visualizar melhor utilize a ferramenta: Fórmulas>>Avaliar Fórmula.

    Compreendeu?

    Abraço.


    Filipe Magno

    domingo, 3 de junho de 2018 18:09