Por Maximiliano Meyer em 12/09/2016 - atualização: 18/07/2018 09:00
Olá pessoal. Essa é mais uma dica de post que chegou pelo nosso e-mail. Então se você tiver uma dúvida específica, é só mandar para [email protected]
Bom, o que o nosso amigo quer fazer é ter uma célula que retorne o último valor de um intervalo. Achamos a ideia superlegal e fizemos este post. Então pensamos que também seria legal se você pudesse achar não só o último valor, mas também o penúltimo, o 4ª, o 20º, etc.
Por isso trouxemos estes códigos. O primeiro deles é exclusivo para encontrar o último, e irá funcionar mesmo que você não saiba a quantidade de itens na referência e se adicionar ou remover itens adicionais. Já o segundo funciona desde que você sabia o número exato do item que deseja encontrar na listagem. Dadas as explicações, vamos aos códigos:
Encontrando o último valor
Com o nosso código a atualização será automática, ou seja, se você adicionar mais um valor abaixo de sua coluna (ou linha) a célula que informa o último valor será atualizada para este que você inseriu. Da mesma forma caso você remova o último valor ela também atualiza.
O código a ser inserido é =PROC(2;1/(NÚM.CARACT(A1:A100)>0);A1:A100), sendo o intervalo A1 ~ A100 o intervalo onde a fórmula irá fazer o monitoramento. Não esqueça de atualizar o intervalo às suas necessidades.
Ahh, esse código também funciona para letras e palavras.
Confira o exemplo na prática no GIF abaixo:
Encontrando qualquer posição
Agora digamos que você tenha uma lista com 75 entradas de valor e quer saber o 23º deles. Para isso vamos utilizar as fórmulas =Índice(), =Maior() e =Lin() ou =Col()
Confira alguns exemplos de fórmula para você pegar a lógica da coisa:
{=ÍNDICE(A1:A10;MAIOR((A1:A10<>"")*(LIN(A1:A10));3))} para retornar o 3º valor de TRÁS para a frente, ou seja o antepenúltimo
{=ÍNDICE(A1:A10;MAIOR((A1:A10<>"")*(LIN(A1:A10));10))} para retornar o 10º valor a partir do último
Reparou que utilizamos a fórmula =Lin() no final? Pois é, isto significa que este código irá funcionar para encontrar valores que estiverem em uma COLUNA. Sim, você usára o Lin par abuscar em coluna e Col para buscar em uma linha. Cuidado para não se confundir. O código para buscar em coluna é esse:
{=ÍNDICE(A1:A10;MAIOR((A1:A10<>"")*(COL(A1:A10));6))} para retornar o 6º valor a partir do último
{=ÍNDICE(A1:A10;MAIOR((A1:A10<>"")*(COL(A1:A10));15))} para retornar o 15º valor a partir do último
As fórmulas atualizam automaticamente caso um valor do intervalo seja excluído e ignora as células em branco.
E alguns detalhers importantes:
Como estamos usando uma fórmula matricial, após você inseri-la no seu excel você tem que apertar a combinação de teclas Ctrl + Shift + Enter. Assim a fórmula ficará entre chaves e tudo dará certo, do contrário você reberá uma mensagem de erro. Para aprender mais sobre fórmulas matriciais clique aqui
As referências da fórmula SEMPRE deverão começar do início da linha ou coluna. Por exemplo. Caso a sua busca vá se referir ao intervalo A30:A35, na referência terá que ser indicado A1:A35 (repare na segunda imagem de exemplo, logo abaixo).