Notifications
Clear all

Procurar o último 0 (zero) de uma coluna

15 Posts
4 Usuários
0 Reactions
3,117 Visualizações
cacilds
(@cacilds)
Posts: 20
Eminent Member
Topic starter
 

Criei este tópico seguindo a dica do usuário Issamu, do site excelmaniacos. Minha dúvida é semelhante a do tópico "Procurar um valor de baixo para cima", porém mais simples.

Tenho uma planilha com várias colunas, mas para o problema vou relacionar duas: Uma com o número do pedido que é ordinal crescente e outra com o item "baterias", por exemplo, que tem valores variáveis, incluindo aí o zero.

Preciso saber por meio de uma fórmula qual foi o ÚLTIMO pedido em que foram pedidos "0" (zero) baterias.

A fórmula PROCV invertido (=PROC(2;1/(Intervalo de busca = valor procurado);Intervalo com valor de resposta desejado) não serve para este propósito se o valor procurado é zero!

Como contornar este problema? Obrigado!

Edit: Obrigado pela atenção wagner. Anexei um exemplo.

Na Plan1, imagine uma coluna A:F enorme, na ordem de centenas de linhas. Para fazer a busca com a fórmula citada acima e por uma questão de funcionalidade, coloquei a função na Plan2 com um intervalo "de folga" até a linha 1000 (na verdade, ocasionalmente fica na ordem de 2000 linhas).

É aí que está o problema: Para o valor "0" (zero) ela não funciona, pois ela varre até a linha última 1000 (cuja células estão vazias), e retorna o valor "0"! Se eu mudar a fórmula e colocar a nela a última linha preenchida - neste caso A22 - ela funciona, mas aí planilha perderia muito de sua serventia, que é a utilização ou não do item!

A disposição para esclarecimentos!

 
Postado : 09/09/2017 11:05 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

cacilds,

Boa tarde!

Anexe um arquivo exemplo, aqui mesmo no fórum, compactado com .ZIP, indicando como são seus dados e como deve ser o resultado esperado.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 09/09/2017 1:16 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite César

Baixe a planilha e veja se eu entendi o que você deseja.

Se foi útil, clique na mãozinha.

Dê retorno.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 09/09/2017 6:12 pm
cacilds
(@cacilds)
Posts: 20
Eminent Member
Topic starter
 

Patropi, agradeço a atenção!

Infelizmente, não serve para o que eu preciso... Observando sua fórmula em K2 vejo que você entendeu o meu pedido, o problema é que na eu teria que mudar esta fórmula umas 30 vezes por dia já que o intervalo considera até a linha 22, mas o número de ordem aumenta frequentemente.

Se a sua formula fosse algo como =INDIRETO("A"&MAIOR(SE($B$2:$B$1000=0;LIN($B$2:$B$1000));1)) considerando um espaço "de folga" para que eu não precise mexer na fórmula, meu problema estaria resolvido!

 
Postado : 09/09/2017 6:31 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

.
cacilds, uma sugestão que resolve ... preenche A23 até F1000 com 1 ... agora é só você mudar o 22 da fórmula para 1000 (e finalizar com Crtl+Shift+Enter)!!! ... Depois é só ir substituindo as linhas com 1 pelos dados corretos!! ... Pronto!!!
.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 09/09/2017 7:19 pm
cacilds
(@cacilds)
Posts: 20
Eminent Member
Topic starter
 

JSCOPA, eu não entendi o que você sugeriu!

 
Postado : 09/09/2017 7:46 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

.
É difícil explicar melhor do que está kk, mas vamos lá ... desmescle a célula A23 ... agora selecione A23 até F1000, digite 1, aperte Crtl+Enter!! .......... Depois vai lá na formula e substitua o 22 por 1000, aperte Crtl+Shift+Enter ... Pronto!!
.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 09/09/2017 7:52 pm
cacilds
(@cacilds)
Posts: 20
Eminent Member
Topic starter
 

JSCOPA, o problema é que neste exemplo ela não está preenchida, mas na planilha "real" normalmente 5/6 linhas são preenchidas por dia.

Como quero que me retorne a última ocorrência, para que a fórmula dada funcionasse eu teria que aumentar uma linha nela cada vez que ela fosse alterada. Com uma linha a mais - como você me sugere - e com celulas vazias, a fórmula me retornará o valor 0, semelhantemente a fórmula do PROCV invertido que eu sugeri no tópico. (Parece que as duas tem a mesma serventia).

Se eu preenchesse com 1 como você me sugere (ou qualquer outro número) para "falsear" a fórmula a chance de arrumar problema com um colega de trabalho desavisado é grande, além deste procedimento me parecer estranho, apesar de funcionar.

 
Postado : 09/09/2017 8:29 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

.
Ok!!
.
Então veja se este exemplo resolve ... se não resolve, porque? ... Sua resposta já agiliza a solução do próximo que passar por aqui!!!
.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 09/09/2017 8:43 pm
cacilds
(@cacilds)
Posts: 20
Eminent Member
Topic starter
 

JSCOPA, é algo assim que estava precisando! Muito obrigado!

Confesso que estou tentando compreender o comportamento da fórmula, mas pelo ÍNDICE e CORRESP me parece um PROC invertido nos dois sentidos, tanto de baixo para cima - o meu problema - quanto da direita para esquerda.

Mas gostaria de lhe pedir permissão para um último questionamento: E para fazer a busca da ESQUERDA para a DIREITA? Esta fórmula também será válida?

 
Postado : 09/09/2017 9:08 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

.
----------------- Editando
.
Seria isto?!
.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 09/09/2017 9:18 pm
deciog
(@deciog)
Posts: 0
Trusted Member
 

calcids

Na formula que voce colocou que seria =INDIRETO("A"&MAIOR(SE($B$2:$B$1000=0;LIN($B$2:$B$1000));1))

para que fica presa no intervalo e não pega as celulas em branco usa desta forma

=SEERRO(INDIRETO("A"&MAIOR(SE((INDIRETO("$B$2:$B$1000")=0)*(INDIRETO("$B$2:$B$1000")<>"");LIN(INDIRETO("$B$2:$B$1000")));1));""), é matricial digita CTRL+SHIT+ENTER

Funciona perfeitamente, Confere modelo

Se foi útil, clique na mãozinha que fica do lado da ferramenta Citar, é uma forma de agradecimento

Se você Visitante Também gostou e foi útil pode clique na mãozinha que fica do lado da ferramenta Citar, é uma forma de agradecimento

Decio

Marque o tópico como Resolvido se foi solucionado seu problema.
Brasil, São Paulo - SP
Décio Gassi

 
Postado : 10/09/2017 4:29 am
cacilds
(@cacilds)
Posts: 20
Eminent Member
Topic starter
 

JSCOPA, não desta forma da cor rosa, mas igual as células amarelas, com somente uma linha para cada coluna! Na verdade, esta apresentação é perfeita para minha necessidade!

Obrigado deciog, tanto a sua fórmula quanto a do JSCOPA funcionam! Só gostaria de deter-me um pouco mais nela para compreender seu funcionamento etapa a etapa.

A única cereja que procuro para este bolo é uma que busque à ESQUERDA, mas com a mesma ocupação de área (só 1 linha), para um futuro próximo.

É possível?

 
Postado : 10/09/2017 5:19 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia

Ontem a noite não acessei mais o fórum, mas pelo jeito o pessoal já conseguiu resolver para você.

Quanto a tua afirmação abaixo:

A única cereja que procuro para este bolo é uma que busque à ESQUERDA, mas com a mesma ocupação de área (só 1 linha), para um futuro próximo.

Só o PROCV que tem essa limitação, as funções ÍNDICE/CORRESP fazem a procura para qualquer lado.
Se postar um exemplo demonstrando manualmente o que você deseja, fica mais fácil tentarmos resolver.

Se foi útil, clique na mãozinha.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 10/09/2017 8:44 am
cacilds
(@cacilds)
Posts: 20
Eminent Member
Topic starter
 

Para resumir a solução:

No caso das funções que o JSCOPA me enviou, tanto a 1ª quanto a 2ª, que é mais complexa, embora funcionem na planilha enviada, não funcionaram na minha pasta de trabalho, mesmo fazendo as devidas substituições. Quando a usei, ela retorna o valor contido na 1ª ocorrência (e não na última), mas não sei por quê.

Já a função do deciog eu nem precisei baixar a planilha, quando a copiei e fiz a devidas modificações na minha pasta funcionou perfeitamente! O único problema é que ela é complexa demais para mim, não entendi o seu funcionamento!

Agradeço desde já a atenção de todos, muito obrigado!

 
Postado : 10/09/2017 5:38 pm