Página 1 de 1

PROCV retornando o próximo resultado (valor seguinte)

Enviado: 28 Mar 2017 às 14:31
por Lcmorais
Estou precisando preencher a tabela de pesquisa para recuperar o resultado posterior (coluna em amarelo) a partir do código do cliente, exame e uma data de consulta (linhas 14 a 21). Se a data da consulta coincidir com a data do exame na tabela de dados, ambos os resultados anterior e posterior deverão ser preenchidos com o resultado encontrado. Caso não coincida, devo tentar obter o resultado do exame imediatamente anterior e posterior em relação a data da consulta (Obs: só posso trazer os resultados se a data da consulta for no mesmo dia do exame sem considerar as horas e minutos).

Ex1: na linha 14 para o paciente 10, exame "Hemacias" e data "01/01/2016 10:00:00" temos um exame anterior (as 09:20) e outro posterior (as 11:30) na tabela de dados, logo a planilha deve exibir o valor de 3,17 e 3,52.
Ex2: na linha 15 para o paciente 10, exame "Hemacias" e data "01/01/2016 12:00:00" só temos o exame anterior (as 11:30). O próximo exame (02/01/2016 10:30:00) é referente a outro dia diferente da data solicitada na pesquisa, logo não deverei preencher ou informar #N/D (não encontrado).
Ex3: na linha 18 para o paciente 10, exame "Hemoglobina" e data "01/01/2016 18:00:00" não temos nenhum exame para este dia, só temos no dia seguinte (02/01/2016). Neste caso tenho que exibir #N/D para ambos os resultados.

Eu consegui utilizar a fórmula matricial {=PROCV(C14;SE($A$3:$A$10=A14&TEXTO(C14;"dd/mm/aaaa")&B14;$C$3:$E$10);3;VERDADEIRO)} para trazer o resultado anterior conforme as regras que informei anteriormente. O meu problema é com relação a próxima coluna que deve trazer o resultado posterior (coluna em amarelo). Pesquisei na internet e só encontrei formas de obter o menor (primeiro), maior (último) registro do dia ou o mais próximo independente se ele for maior ou menor do que o solicitado. É possível utilizar alguma fórmula para trazer os resultados ? Ou serei obrigado a utilizar VBA ? Estou tentando utilizar fórmula pois a tabela original de dados possui mais de 100 mil linhas. Agradeço caso alguém tenha alguma sugestão (eu posso modificar a chave e ordenação das colunas). Obrigado.

Imagem

Re: PROCV retornando o próximo resultado (valor seguinte)

Enviado: 28 Mar 2017 às 23:12
por babdallas
Veja se é isso.

Re: PROCV retornando o próximo resultado (valor seguinte)

Enviado: 29 Mar 2017 às 07:35
por FelipeMGarcia
Amigo,

Segue minha contribuição, eu pintei em verde onde fiz as fórmulas.

Abs

PROCV retornando o próximo resultado (valor seguinte)

Enviado: 29 Mar 2017 às 10:42
por Lcmorais
babdallas, muito obrigado pela ajuda. Eu só encontrei um problema com a utilização da sua fórmula: o problema ocorre quando existe uma data de consulta exatamente igual nos dados (veja a linha 17: a data de consulta é 01/01/2016 11:30:00 sendo que existe a linha 4 exatamente no mesmo horário. Para este caso deveria ser exibido 3,52 ao invés de "Não disponível". Deve ser algum pequeno detalhe a ser alterado na sua fórmula. Vou dar uma olhada.

FelipeMGarcia, obrigado pela ajuda. A sua fórmula não está refletindo a regra que eu informei anteriormente na observação("(Obs: só posso trazer os resultados se a data da consulta for no mesmo dia do exame sem considerar as horas e minutos)"). Por exemplo, na linha 15 deveria ter sido exibido "#N/D" ao invés de 3,48 pois não temos na lista de dados nenhuma linha com data posterior a 01/01/2016 12:00 para o mesmo dia da consulta (só vai ter a linha 6 mas é no dia seguinte).

Abs.

PROCV retornando o próximo resultado (valor seguinte)

Enviado: 29 Mar 2017 às 11:10
por Lcmorais
Consegui o que eu queria :D . Era um pequeno ajuste na fórmula do babdallas. Eu acrescentei "=" no trecho da fórmula "SE(($C14-$C$3:$C$10)<=0". Muito obrigado.

Abs