
Fórmula genérica
(=INDEX(range,MATCH(FALSE,ISBLANK(range),0)))
Resumo
Para obter o primeiro valor não vazio (texto ou número) em um intervalo de uma coluna, você pode usar uma fórmula de matriz com base nas funções INDEX, MATCH e ISBLANK. No exemplo mostrado, a fórmula em D10 é:
(=INDEX(B3:B11,MATCH(FALSE,ISBLANK(B3:B11),0)))
Nota: esta é uma fórmula de matriz e deve ser inserida com Control-Shift-Enter.
Explicação
Portanto, a essência do problema é esta: Queremos obter a primeira célula que não está em branco, mas não temos uma maneira direta de fazer isso no Excel. Poderíamos usar PROCV com um caractere curinga * (veja o link abaixo), mas isso só funcionará para texto, não para números.
Portanto, precisamos construir a funcionalidade de que precisamos aninhando fórmulas. Uma maneira de fazer isso é usar uma função de matriz que "testa" as células e retorna uma matriz de valores TRUE / FALSE que podemos alimentar na função MATCH.
Trabalhando de dentro para fora, a função ISBLANK avalia as células no intervalo B3: B11 e retorna uma matriz semelhante a esta:
(TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE)
Cada FALSE representa uma célula do intervalo que não está em branco.
Em seguida, MATCH procura FALSE dentro da matriz e retorna a posição da primeira correspondência encontrada, neste caso 2. Neste ponto, a fórmula no exemplo agora se parece com isto:
(=INDEX(B3:B11,2,0)))
Finalmente, a função INDEX assume e obtém o valor na posição 2 na matriz, que é 10.
Primeiro valor de comprimento diferente de zero
Para obter o primeiro valor de comprimento diferente de zero, você pode incluir a função LEN como esta:
(=INDEX(range,MATCH(TRUE,LEN(range)>0,0)))
Primeiro valor numérico
Para obter o primeiro valor numérico em uma lista, você pode adaptar a fórmula para usar a função ISNUMBER e, em seguida, alterar a lógica para corresponder a TRUE em vez de FALSE:
(=INDEX(range,MATCH(TRUE,ISNUMBER(range),0)))
Esta também é uma fórmula de matriz e deve ser inserida com control + shift + enter.