Encontrar a última ocorrência de um determinado valor no Excel

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:

planilha exemplo

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

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 1s 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).

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

7 pensamentos em “Encontrar a última ocorrência de um determinado valor no Excel”

  1. 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?

    1. É 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.

  2. 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.

  3. 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!

  4. 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.