= LOOKUP (2,1/(A:A''),A:A)Resumo
Para encontrar o valor da última célula não vazia em uma linha ou coluna, você pode usar a função LOOKUP nesta fórmula surpreendentemente compacta. Como um bônus adicional, esta fórmula não é uma fórmula de matriz e não é volátil.
Explicação
A chave para entender essa fórmula é reconhecer que lookup_value de 2 é deliberadamente maior do que qualquer valor que aparecerá no lookup_vector.
atalho de teclado do excel para editar célula
- A expressão A: A '' retorna uma matriz de valores verdadeiros e falsos: {TRUE, FALSE, TRUE, ...}.
- O número 1 é então dividido por esta matriz e cria uma nova matriz composta de erros de 1 ou divisão por zero (# DIV / 0!): {1,0,1, ...}. Este array é o lookup_vector.
- Quando lookup_value não pode ser encontrado, LOOKUP irá corresponder ao próximo menor valor.
- Nesse caso, lookup_value é 2, mas o maior valor em lookup_array é 1, portanto, lookup corresponderá ao último 1 na matriz.
- LOOKUP retorna o valor correspondente em result_vector (ou seja, o valor na mesma posição).
Lidando com erros
Se houver erros no lookup_vector, especialmente se houver um erro na última célula não vazia, esta fórmula precisa ser ajustada. Este ajuste é necessário porque '' os critérios retornarão um erro se uma célula contiver um erro. Para contornar esse problema, use ISBLANK com NOT:
= LOOKUP (2,1/( NOT ( ISBLANK (A:A))),A:A)
Último valor numérico
Para obter o último valor numérico, você pode adicionar a função ISNUMBER assim:
= LOOKUP (2,1/( ISNUMBER (A1:A100)),A1:A100)
Posição do último valor
Se você deseja obter a posição (neste caso, o número da linha) do último valor, pode tentar uma fórmula como esta:
como abrir duas janelas do excel lado a lado
= LOOKUP (2,1/(A:A''), ROW (A:A))
Aqui, alimentamos os números de linha do mesmo intervalo na pesquisa do vetor de resultado e obtemos o número de linha da última correspondência.
Autor Dave Bruns