Notifications
Clear all

Como retornar um valor de um intervalo (Minimo~Maximo)?

10 Posts
3 Usuários
0 Reactions
1,204 Visualizações
(@sevenz)
Posts: 5
Active Member
Topic starter
 

Bom dia pessoal!

Sou novo aqui no forum, primeiramente eu gostaria de agradecer pelo espaço, segundo espero poder ajudar e contribuir com o forum futuramente assim como os demais usuários ajudam uns aos outros aqui e terceiro vamos a questão! :

O senário é simples:

*_____Coluna A_____Coluna B_____Coluna C
1_____Produtos_____cod(Min)_____cod(Max)
2_____Pedra___________1_________10
3_____Papel___________11________20
4_____Tesoura_________21________30

Eu gostaria de saber se existe uma formula ou solução para eu retornar o valor da coluna A se eu pesquisar pelo numero que fica entre o intervalo Minimo e Maximo das colunas B e C, por exemplo:

Se eu procurar pelo numero 7 (numero que está entre 1 e 10) me retorne o valor: Pedra.
Se eu procurar pelo numero 13 (numero que está entre 11 e 20) me retorne o valor: Papel.
Se eu procurar pelo numero 29 (numero que está entre 21 e 30) me retorne o valor: Tesoura.
--------------------------------------------------------------------------------
A opção de ter da seguinte forma está fora de cogitação:
=PROCV(7;A2:B11;2;VERDADEIRO)
Valor retornado sera: Pedra

*_____Coluna A_____Coluna B
1______Código______Produto
2________1_________Pedra
3________2_________Pedra
4________3_________Pedra
5________4_________Pedra
6________5_________Pedra ----------------> Fora de Cogitação pois está deixando a planilha lenta, tem mais de 1 milhão de números com intervalos entre eles.
7________6_________Pedra
8________7_________Pedra
9________8_________Pedra
10_______9_________Pedra
11_______10________Pedra
--------------------------------------------------
Essa opção sitada acima consegue fazer o que eu preciso, contudo infelizmente meu banco de dados possui em torno de 1 milhao de numeros com intervalos entre eles para serem procurados, seria muito interessante se eu conseguisse localizar o valor procurado entre o intervalo de Minimo e Máximo desses números, milha planilha está com mais de 70MB :(
Está muito lenta :?

Qualquer feedback ou brainstorm a respeito disso seria extremamente útil!!!

Desde já agradeço a atenção de todos!

Att,

Jean - Sevenz

 
Postado : 20/11/2014 4:23 am
(@gtsalikis)
Posts: 2373
Noble Member
 

A opção de ter da seguinte forma está fora de cogitação:
=PROCV(7;A2:B11;2;VERDADEIRO)
Valor retornado sera: Pedra

Você pode não acreditar, mas a fórmula é essa mesma (só tinha que ter tirado o VERDADEIRO.

Porém, como vc está procurando na coluna B para retornar valores na coluna A (PROCV para trás), eu juntei com a função ESCOLHER:

=PROCV(7;ESCOLHER({12};B2:B11;A2:A11);2)

Abs

PS: pelo teu prórpio exemplo, (sem ESCOLHER), seria assim:

=PROCV(7;A2:B11;2)

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 20/11/2014 5:09 am
(@sevenz)
Posts: 5
Active Member
Topic starter
 

A opção de ter da seguinte forma está fora de cogitação:
=PROCV(7;A2:B11;2;VERDADEIRO)
Valor retornado sera: Pedra

Você pode não acreditar, mas a fórmula é essa mesma (só tinha que ter tirado o VERDADEIRO.

Porém, como vc está procurando na coluna B para retornar valores na coluna A (PROCV para trás), eu juntei com a função ESCOLHER:

=PROCV(7;ESCOLHER({12};B2:B11;A2:A11);2)

Abs

PS: pelo teu prórpio exemplo, (sem ESCOLHER), seria assim:

=PROCV(7;A2:B11;2)

Muito obrigado amigo! Que coisa não??? O que eu já quebrei a cabeça aqui tentando formulas cabulosas!!!! Muito obrigado!

Só não entendi o por que da função "escolher", quando copiei sua função modificada com "escolher" deu erro na formula.

Mais uma vez, muito obrigado!!!

Att,

Jean.

 
Postado : 20/11/2014 6:07 am
(@sevenz)
Posts: 5
Active Member
Topic starter
 

A opção de ter da seguinte forma está fora de cogitação:
=PROCV(7;A2:B11;2;VERDADEIRO)
Valor retornado sera: Pedra

Você pode não acreditar, mas a fórmula é essa mesma (só tinha que ter tirado o VERDADEIRO.

Porém, como vc está procurando na coluna B para retornar valores na coluna A (PROCV para trás), eu juntei com a função ESCOLHER:

=PROCV(7;ESCOLHER({12};B2:B11;A2:A11);2)

Abs

PS: pelo teu prórpio exemplo, (sem ESCOLHER), seria assim:

=PROCV(7;A2:B11;2)

Na verdade agora que vi aqui, testei no exemplo, e funcionou no exemplo, contudo não funcionou na planilha de verdade, se puder da uma olhada, segue em anexo a mesma:

http://bestchoice.pontonline.com.br/pictures/planilha-forum-sevenz.xlsx

Obrigado!

 
Postado : 20/11/2014 6:26 am
(@gtsalikis)
Posts: 2373
Noble Member
 

A opção de ter da seguinte forma está fora de cogitação:
=PROCV(7;A2:B11;2;VERDADEIRO)
Valor retornado sera: Pedra

Você pode não acreditar, mas a fórmula é essa mesma (só tinha que ter tirado o VERDADEIRO.

Porém, como vc está procurando na coluna B para retornar valores na coluna A (PROCV para trás), eu juntei com a função ESCOLHER:

=PROCV(7;ESCOLHER({12};B2:B11;A2:A11);2)

Abs

PS: pelo teu prórpio exemplo, (sem ESCOLHER), seria assim:

=PROCV(7;A2:B11;2)

Muito obrigado amigo! Que coisa não??? O que eu já quebrei a cabeça aqui tentando formulas cabulosas!!!! Muito obrigado!

Só não entendi o por que da função "escolher", quando copiei sua função modificada com "escolher" deu erro na formula.

Mais uma vez, muito obrigado!!!

Att,

Jean.

ESCOLHER eu usei porque no teu exemplo, as informações estão "invertidas". O PROCV só procura da esquerda para a direita, mas no teu exemplo, vc estava querendo procurar da direita para a esquerda.

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 20/11/2014 7:21 am
(@gtsalikis)
Posts: 2373
Noble Member
 

A opção de ter da seguinte forma está fora de cogitação:
=PROCV(7;A2:B11;2;VERDADEIRO)
Valor retornado sera: Pedra

Você pode não acreditar, mas a fórmula é essa mesma (só tinha que ter tirado o VERDADEIRO.

Porém, como vc está procurando na coluna B para retornar valores na coluna A (PROCV para trás), eu juntei com a função ESCOLHER:

=PROCV(7;ESCOLHER({12};B2:B11;A2:A11);2)

Abs

PS: pelo teu prórpio exemplo, (sem ESCOLHER), seria assim:

=PROCV(7;A2:B11;2)

Na verdade agora que vi aqui, testei no exemplo, e funcionou no exemplo, contudo não funcionou na planilha de verdade, se puder da uma olhada, segue em anexo a mesma:

http://bestchoice.pontonline.com.br/pictures/planilha-forum-sevenz.xlsx

Obrigado!

Deu erro porque nessa planilha os dados não estão em ordem.

Quando vc não tem os dados em ordem, deve utilizar a PROCV com a condição VERDADEIRO (como vc estava usando, e que eu retirei). Isso porque assim ela vai procurar o valor exato.

Porém, você não tem o valor exato, então, vai ter que ser de outra forma (Localizando o valor mais próximo - igual ou maior do que o indicado).

Então, na planilha que vc enviou, use a seguinte fórmula:

=PROCV(MÍNIMO(SE($C$3:$C$55>=G2;$C$3:$C$55));$C$3:$D$55;2;0)

É uma formula matricial, isso significa que, em vez de apenas colocar a fórmula e pressionar Enter, vc deve pressionar Ctrl + Shift + Enter. Se fez corretamente, ela vai ficar entre chaves {}

Abs

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 20/11/2014 7:26 am
Reinaldo
(@rlm)
Posts: 246
Estimable Member
 

Para utilização do ProcV por "proximidade", como no seu caso, é requerido que a coluna utilizada para pesquisa esteja ordenada/classificada em ordem crescente; caso contrario o retorno não será o esperado.

Reinaldo

 
Postado : 20/11/2014 7:26 am
(@sevenz)
Posts: 5
Active Member
Topic starter
 

Deu erro porque nessa planilha os dados não estão em ordem.

Quando vc não tem os dados em ordem, deve utilizar a PROCV com a condição VERDADEIRO (como vc estava usando, e que eu retirei). Isso porque assim ela vai procurar o valor exato.

Porém, você não tem o valor exato, então, vai ter que ser de outra forma (Localizando o valor mais próximo - igual ou maior do que o indicado).

Então, na planilha que vc enviou, use a seguinte fórmula:

=PROCV(MÍNIMO(SE($C$3:$C$55>=G2;$C$3:$C$55));$C$3:$D$55;2;0)

É uma formula matricial, isso significa que, em vez de apenas colocar a fórmula e pressionar Enter, vc deve pressionar Ctrl + Shift + Enter. Se fez corretamente, ela vai ficar entre chaves {}

Abs

Muito obrigado mais uma vez!

Gostei do seu código que está pequeno, contudo não estou conseguindo fazer ele funcionar

Estou seguindo sua instrução de adicionar Ctrl + Shift + Enter, está incluindo {} automaticamente na função contudo não está funcionando conforme mostra a foto:

http://bestchoice.pontonline.com.br/pic ... sevenz.jpg

Desculpa por tantas perguntas!!

 
Postado : 20/11/2014 8:35 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Esse erro NOME é devido às funções.

Eu estou usando o Excel 2013. Se vc estiver com outra versão, pode ser que ele use MÍN no lugar de MÍNIMO.

Para ajudar, anexei a tua planilha com a fórmula nela.

Veja se agora vai.

Abs

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 20/11/2014 10:13 am
(@sevenz)
Posts: 5
Active Member
Topic starter
 

Esse erro NOME é devido às funções.

Eu estou usando o Excel 2013. Se vc estiver com outra versão, pode ser que ele use MÍN no lugar de MÍNIMO.

Para ajudar, anexei a tua planilha com a fórmula nela.

Veja se agora vai.

Abs

Agora foi!

Muito obrigado amigo! Vou colocar resolvido no post!

Um ótimo feridão para você!

 
Postado : 20/11/2014 1:35 pm