Notifications
Clear all

Indicar STATUS de última ocorrência, com critérios.

39 Posts
3 Usuários
0 Reactions
6,452 Visualizações
(@vic7or)
Posts: 94
Estimable Member
Topic starter
 

Prezados colegas do fórum,
tenho uma condição a acrescentar em uma função que foi elaborada com a ajuda do nosso companheiro ninja Bernardo, no meu problema (resolvido), no tópico: Indicar STATUS de última ocorrência de um item na planilha..

Há algum tempo vim com um problema para resolver a questão da quantidade de registros que possuo em tabelas aqui no trabalho.
Diariamente são registradas centenas de linhas e, desde 2009, é mantido dessa forma.
Hoje, tais registros são repetidos, mas alterando apenas as outras informações.

Tomo como exemplo, a simulação de um consultório médico.

Um paciente vai diversas vezes com certo dr. para realizar exames periódicos.
Ou seja, ele pode ir uma vez em 2009, outra em 2010, mais uma em 2011.. ..... enfim,
ou pode ir uma vez por mês, de 2009 até 2013.

O que importa, nesse caso, é que a cada vez que o paciente vai ao consultório, é registrado o que este paciente têm como resultado de exame.

Resumindo a problemática:
É necessário buscar o valor do exame anterior e o de origem desse paciente, de acordo com um critério.
Na simulação, apresento dois tipos de tratamento: CONSULTA (para averiguar a saúde ou o estado da doença do paciente) e EXAME (que executará um tratamento para eliminar ou amenizar a doença do paciente). O critério, para encontrar o resultado anterior e o primeiro resultado do paciente, é que só vale para o tratamento de EXAME clínico.

Segue um print do exemplo ideal, em anexo:

O que quero aprender, é como acrescentar uma condição na fórmula.

Dizer, na fórmula:
"olha só, traga tais resultados, onde minha condição seja satisfeita".

Se eu aplico a condição "SE" ele executa a função, mas só na linha onde o critério é satisfeito.

{=SE(CONT.SE($B$2:B2;B2)=1;"primeira visita";INDIRETO("D"&MÁXIMO(SE($B$1:B1=B2;LIN($B$1:B1))))} - Função original, que busca o anterior, sem critérios.

Queria aprender onde inserir a condição, de forma correta, dentro dessa função.

A forma mais correta é usar a função "E" ? Que busca verdadeiro ou falso e retorna o resultado se for verdadeiro?

Segue, em anexo, o caso de uso atualizado, com a simulação, para caso alguém deseje ver o problema de forma mais explicada.

A primeira aba, é o caso de uso - explicando o problema e exemplificando (com o mesmo exemplo da imagem em anexo)
A segunda aba, é a planilha que trás resultados sem nenhum critério.
A terceira aba, é o exemplo onde poderei utilizar a forma com critérios, para saber se está funcionando. Esta, possui os dados que devem aparecer, com a fórmula.

 
Postado : 02/07/2013 12:23 pm
(@vic7or)
Posts: 94
Estimable Member
Topic starter
 

Peço perdão no exemplo apresentado.

Apresento o anexo a seguir, com a retificação do problema.

O exemplo:

 
Postado : 02/07/2013 1:39 pm
(@pedro)
Posts: 362
Reputable Member
 

Bom dia!

vic7or, veja se é isso que você queria...

A explicação é simples, eu apenas adicionei um SE como você havia previsto que seria, ou seja, SE o valor na célula H for "Exame" ele executa sua fórmula original, senão ele deixa em branco.

Qualquer coisa avisa.

 
Postado : 03/07/2013 5:20 am
(@vic7or)
Posts: 94
Estimable Member
Topic starter
 

Acho que eu deveria mudar o título para "Como aplicar condições em fórmulas do Excel?"

Por exemplo.

Acho que, uma tabela mais simples também resolveria a minha questão acima.

Por exemplo,
se eu quisesse somar valores de uma coluna, mas com referencia à condição de outra coluna.

Por exemplo, a soma de vários valores, de acordo com o ano.

Este, por exemplo, se resolve facilmente utilizando o SOMASE

...

Mas, no meu caso anterior, eu não sei ainda como aplicar uma condição de busca.
É essa a minha dúvida, gente.

=(

 
Postado : 03/07/2013 5:28 am
(@vic7or)
Posts: 94
Estimable Member
Topic starter
 

Opa, o Pedro deu uma luz aqui, vou ver como ele fez e já retorno.

 
Postado : 03/07/2013 5:30 am
(@vic7or)
Posts: 94
Estimable Member
Topic starter
 

Então, eu tinha feito exatamente como o Pedro fez, aplicando o SE, e o resultado tinha sido exatamente o mesmo.
Mas não é esta a solução que venho a buscar no momento, pois ela traz apenas o resultado anterior, onde o tratamento for igual a "EXAME".

Mas, o que quero, é que ele traga o RESULTADO anterior DO QUAL o tratamento era igual a EXAME.

Como mostro no anexo seguinte:

O que eu estou em busca, não é executar a fórmula a partir de uma condição. Que é o que eu e o Pedro fizemos, mas não deu certo.
Como eu disse no primeiro post

Se eu aplico a condição "SE" ele executa a função, mas só na linha onde o critério é satisfeito.

Que daria nisso:

O resultado apresentado na última coluna, são as mesmas da fórmula sem critérios, mas, executada apenas se o tratamento for igual a "EXAME".

O que eu gostaria de aprender, é executar uma condição dentro da fórmula. Para assim, executar e resultar no que estou esperando, na primeira imagem deste post.

Eita...

Eu só complico mais as coisas, não?

 
Postado : 03/07/2013 5:51 am
(@vic7or)
Posts: 94
Estimable Member
Topic starter
 

Agradeço a ajuda, Pedro! =)
Será que você entendeu o que eu to buscando exatamente?

Eu tinha tentado da mesma forma que você, mas eu percebi que essa condição só faz executar a função sem critérios.
hahahah
Quero uma função com critérios *__*

xD
Obrigado pela ajuda! Vamo aprender essa, junto! o/

 
Postado : 03/07/2013 5:58 am
(@pedro)
Posts: 362
Reputable Member
 

Olha agora...

Editei a formula e ficou assim:

{=SE(CONT.SE($G$27:G27;G27)=1;"primeira visita";INDIRETO("I"&MÁXIMO(SE($H$26:H26="Exame";LIN($I$26:I26)))))}

Deu todos os resultados conforme a imagem, exceto o segundo resultado, que eu não sei por que de #REF, ainda estou vendo...

Mas vai dando uma olhada aí, qualquer coisa avisa.

 
Postado : 03/07/2013 6:06 am
(@pedro)
Posts: 362
Reputable Member
 

Para corrigir o #REF! alterei o início dos resultados para a linha 27, na sua planilha original ele iniciava a contagem na 27, mas os resultados na 26, agora a formula esta contando a partir da 27 e resultando a partir da 27.

Da uma olhada.

Qualquer coisa é só trocar o 26 por 27 nos intervalos de pesquisa...

Me avisa se funcionar.

 
Postado : 03/07/2013 6:17 am
(@vic7or)
Posts: 94
Estimable Member
Topic starter
 

Nossa, Pedro.
Funcionou.

Mas funcionou a primeira, com o erro do #REF. Hahaha.
A de baixo, quando você corrigiu indicado a linha 27, ele alterou os resultados do último exame (exame anterior ao atual).

Eu adicionei um SEERRO( ... ; "Primeiro exame") e, tudo tá lindo e maravilhoso! Hahahaah

=SE(CONT.SE($G$27:G27;G27)=1;"primeira visita";SEERRO(INDIRETO("I"&MÁXIMO(SE($H$26:H26="Exame";LIN($I$26:I26))));"Primeiro exame"))
 
Postado : 03/07/2013 6:33 am
(@vic7or)
Posts: 94
Estimable Member
Topic starter
 

Se eu quiser adicionar duas referencias, para

INDIRETO("I"&MÁXIMO(SE($H$26:H26="Exame";LIN($I$26:I26))))

por exemplo

Quero que ele procure "EXAME" e "CIRURGIA".

Como indicar diretamente na fórmula?

Por exemplo, eu tenho como colocar, em uma nova pasta,
os tipos de tratamento:

E indicar

INDIRETO("I"&MÁXIMO(SE($H$26:H26=Tratamentos!$A$2:$A:$3;LIN($I$26:I26))))

daria certo, certo?

Mas, tem um jeito mais "complicado", direto na fórmula?

Dizer "Quero que vc busque os valores onde Tratamento for igual a Exame e Cirurgia"

 
Postado : 03/07/2013 6:46 am
(@pedro)
Posts: 362
Reputable Member
 

Você entendeu o que eu fiz?

A lógica é igual da primeira fórmula note:

{=SE(CONT.SE($G$27:G27;G27)=1;"primeira visita";INDIRETO("H"&MÁXIMO(SE($G$26:G26=G27;LIN($G$26:G26)))))}

Fórmula nova:

{=SE(CONT.SE($G$27:G27;G27)=1;"primeira visita";INDIRETO("I"&MÁXIMO(SE($H$26:H26="Exame";LIN($I$26:I26)))))}

Nas duas ele verifica se é a primeira consulta e caso não seja;
Analisa a coluna determinada, na primeira é a coluna H e na segunda a coluna I;
Na primeira ele verifica uma condição variável que o conteúdo da célula G27, na segunda ele verifica uma condição fixa "Exame";
E na primeira busca o resultado da coluna G, e na segunda da coluna I.

Só que eu não entendi mesmo como deu #REF! na segunda célula, se fosse na primeira ou na ultima, teria lógica, mas no meio não tem.

Deixa eu compartilhar uma experiência minha cara, SEERRO vai resolver seu problema agora, mas ele pode esconder outros erros, é meio tenso, uma vez achei um erro numa fórmula que já estava a uns 6 meses, só que o "SEERRO" que eu usava tava escondendo ele...
Mas se as informações não saírem muito do padrão, ele vai ser suficiente.

Por fim, se resolveu, não esqueça de marcar o tópico como resolvido.

Qualquer coisa visa.

Abraço.

 
Postado : 03/07/2013 6:49 am
(@pedro)
Posts: 362
Reputable Member
 

Olha o anexo agora...

Veja se te serve, senão me avisa...

(ta meio gambiarra, mas é fácil adaptar na sua planilha original, qualquer coisa pergunte...)

 
Postado : 03/07/2013 6:57 am
(@vic7or)
Posts: 94
Estimable Member
Topic starter
 

Prezado, Pedro.
A sua fórmula está corretíssima perante a tabela apresentada.
Ao ler sua fórmula, vi que você substituiu a condição de procurar o nome do paciente, pela condição de procurar o tipo de tratamento.

Com isso, ao colocar outro paciente, a fórmula não se adequa.
=/

{=SE(CONT.SE($G$27:G27;G27)=1;"primeira visita";INDIRETO("H"&MÁXIMO(SE($G$26:G26=G27;LIN($G$26:G26)))))}

Ele buscava em

SE($G$26:G26=G27;LIN($G$26:G26))

o nome do paciente, e se fosse igual, retornava o valor anterior da linha 26.

A coluna G, representava o nome do paciente.

Com a nova fórmula de critério, foi substituído esta importante condição.

Pedro, na planilha a seguir, apresento o mesmo documento. Mas com suas alterações e indicações de fórmula.
O caso de uso completo, se encontra na pasta de trabalho "POR TRATAMENTO = EXAME".

Você pode me ajudar nisso?

 
Postado : 03/07/2013 7:23 am
(@pedro)
Posts: 362
Reputable Member
 

Baixei, estou analisando.

 
Postado : 03/07/2013 7:32 am
Página 1 / 3