Fórmula do Excel: obter o valor da última célula não vazia -

Índice

Fórmula genérica

=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 esta fórmula é reconhecer que lookup_value de 2 é deliberadamente maior do que qualquer valor que aparecerá no lookup_vector.

  1. A expressão A: A "" retorna uma matriz de valores verdadeiros e falsos: (TRUE, FALSE, TRUE,…).
  2. O número 1 é então dividido por esta matriz e cria uma nova matriz composta por erros de 1 ou divisão por zero (# DIV / 0!): (1,0,1,…). Este array é o lookup_vector.
  3. Quando lookup_value não pode ser encontrado, LOOKUP irá corresponder ao menor valor seguinte.
  4. Nesse caso, lookup_value é 2, mas o maior valor em lookup_array é 1, portanto, lookup corresponderá ao último 1 na matriz.
  5. 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 este 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 desta forma:

=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:

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

Artigos interessantes...