Dado que você tenha uma planilha com diversos valores repetidos, como encontrar a última ocorrência de um dado valor? Existem diversas formas de resolver isso, a mais simples é usando a função LOOKUP
(ou PROC
em português) do Excel.
Suponha que você tenha uma planilha com alguns dados, como itens de uma compra e o valor e queira encontrar o valor que pagou na última vez que comprou um determinado item:
Nesse exemplo, se eu procurar por “Caneta” a função deve retornar o valor “R$ 2,50”. A chamada da função fica assim:
=LOOKUP(2;1/(A2:A5=D2);B2:B5)
Resultado
Explicação
No segundo parametro usamos 1/(A2:A5=D2)
como vetor de procura
, onde (A2:A5=D2)
irá retornar um vetor com valores TRUE
/FALSE
para cada índice indicando se corresponde ou não ao valor procurado. Dividindo isso por 1, teremos um vetor com 1
s ou erro #DIV/0!
.
Ai que entra a mágica, o primeiro parâmetro da função é o valor buscado no vetor, como passamos o valor 2 e nosso vetor de procura
não tem nenhum, a função retornará o último número (o último 1) do vetor que corresponde ao índice da linha que procuramos no vetor de resultado
(B2:B5
).
21 respostas em “Encontrar a última ocorrência de um determinado valor no Excel”
Olá, como eu poderia utilizar uma fórmula para encontrar o saldo referente a uma data específica? Ex: Tenho uma aba com várias datas e lançamentos de entradas e saídas com saldos. Outra aba com todas as datas mas queria ter um campo somente com os saldos de cada data. É possível? Como seria ela?
Se o saldo de cada data já estiver calculado vc poderia usar o exemplo do post para buscar o último saldo de uma determinada data. Agora se vc quer que na outra aba faça o cálculo do saldo até a data, vc precisaria usar outras fórmulas, como o SOMASE para calcular o saldo baseado em uma dada data. Se puder adicionar um exemplo dos seus dados e o que vc espera de resultado posso ajudar a montar.
Olá, tudo bem?
Agradeço muito pela explicação, nos ajudou muito.
Mas como faríamos se na tabela ter células vazias, testamos aqui ele retornou o zero, teria com colocar um comando como “>0”
Opa,
Tenho uma tabela de compras de produtos. Preciso retornar o valor da ultima compra. Por exemplo:
DATA_COMPRA PRODUTO VALOR
01/01/2021 LARANJA R$ 10,00
01/01/2021 UVA R$ 15,00
05/02/2021 LARANJA R$ 12,00
05/02/2021 UVA R$ 20,00
03/03/2021 LARANJA R$ 14,00
03/03/2021 UVA R$ 9,00
09/03/2021 PERA R$ 15,00
Em uma outra planilha, quando eu digitar “LARANJA” ele deve retornar pra mim o valor de 14,00, que é o ultima compra(considerando o campo data)
Opa Wemerson,
Desde que sua lista de produtos esteja ordenada por data, a fórmula do artigo funcionará como vc espera.
Abraços
[…] fiz dois posts ensinando como encontrar a última e a n-ésima ocorrência de um valor no Excel, agora trago uma variação desse última para […]
Boa tarde. Otimo tutorial, saberia me informar como faria para encontrar o penultima ocorrencia de um detarminado valor? Muito obrigado.
Boa tarde Mario. Fiz um post explicando como encontrar a penúltima ocorrência: https://www.cogumello.com/dicas/excel/encontrar-a-penultima-ocorrencia-de-um-determinado-valor-no-excel/ .
Ele é baseado em um outro post de encontrar a n-ésima ocorrencia. Espero que te ajude.
Abraços
Otimo, muito facil e simplificado!
Como seria para procurar sempre a penúltima ocorrência, ao envés da ultima? Obrigado!
Muito obrigado pela informação do seu post. Foi esclarecedor e muito útil.
Quênia e Damião, muito obrigado!
Tentei usar este artifício para identificar o último valor zero em uma coluna, porém sem sucesso. Como devo proceder?
Daria para usar na forma que está no post, só alterando a busca para ser pelas colunas invés de linhas:
=LOOKUP(2;1/(A2:G2=B4);A1:G1)
[…] fiz um post mostrando como encontrar a última ocorrência de um determinado valor no Excel, mas agora vou mostrar como é possível encontrar o número da linha da n-éssima ocorrência de […]
Boa tarde. Digamos que, em sua lista, caneta aparecesse 5 vezes em uma lista de 20 itens. Eu gostaria de uma fórmula que desse o número da linha da 3 ocorrência, por exemplo. Tem como fazer?
É possível sim, mas é preciso utilizar outra fórmula:
=SMALL(IF($D$2=$A$2:$A$20; ROW($A$2:$A$20)-ROW($A$1)+1); 3)
Essa é uma formula matricial, então para aplica-la é preciso apertar CONTROL+SHIFT+ENTER.
Farei um post para tentar explicar melhor como usar essa fórmula.
parabéns pela explicação, porém utilizei a sua explanação para calcular os números atrasados da mega sena e da lotomania.
=MÁXIMO($A:$A)-PROC(2;1/(K:K=1);$A:$A)
Onde o MÁXIMO($A:$A) é o número do último concurso da Mega Sena
Fiz com que a função Proc localiza-se o último número “1” da coluna específica k:k e me retorna-se o valor do concurso.
Para saber o atraso do número eu subtrai o valor do ultimo concurso.
Damião, a parte da explicação principalmente o último parágrafo não ficou claro, mas creio que isto tenha a ver com o que estou precisando. É possível usar o PROC para encontrar A LINHA do último valor procurado? Obrigado!
Use a fórmula CORRESP ao invés de PROC
MInd Blow
Parabéns, Damião.
Eu já estudo Excel há anos e nunca tinha visto essa solução. Muito inteligente.
Só cabe uma ressalva:
No Excel: como explicado
No Calc: não funciona (erro:504)
No Google Planilhas: ao terminar de digitar, apertar Ctrl+Alt+Enter, pois ele entende que é uma fórmula matricial.