
Fórmula genérica
(=ROW(range)-ROW(range.firstcell)+1)
Resumo
Para obter um conjunto completo de números de linha relativos em um intervalo, você pode usar uma fórmula de matriz com base na função ROW. No exemplo mostrado, a fórmula em B5: B11 é:
(=ROW(B5:B11)-ROW(B5)+1)
Observação: esta é uma fórmula de matriz que deve ser inserida com Control + Shift + Enter. Se você estiver inserindo isso na planilha (e não dentro de outra fórmula), faça uma seleção que inclua mais de uma linha, insira a fórmula e confirme com Control + Shift + Enter.
Esta fórmula continuará a gerar números relativos, mesmo quando o intervalo for movido. No entanto, não é uma boa escolha se as linhas precisam ser classificadas, excluídas ou adicionadas, porque a fórmula da matriz evitará alterações. As opções de fórmula explicadas aqui funcionarão melhor.
Explicação
A primeira função ROW gera uma matriz de 7 números como este:
(5;6;7;8;9;10;11)
A segunda função ROW gera uma matriz com apenas um item como este:
(5)
que é então subtraído da primeira matriz para produzir:
(0;1;2;3;4;5;6)
Finalmente, 1 é adicionado para obter:
(1;2;3;4;5;6;7)
Versão genérica com intervalo nomeado
Com um intervalo nomeado, você pode criar uma versão mais genérica da fórmula usando a função MIN ou a função INDEX. Por exemplo, com o intervalo denominado "lista", você pode usar MIN assim:
(ROW(list)-MIN(ROW(list))+1)
Com INDEX, buscamos a primeira referência no intervalo nomeado e usando ROW nisso:
(=ROW(list)-ROW(INDEX(list,1,1))+1)
Freqüentemente, você verá fórmulas de "linha relativa" como esta dentro de fórmulas de matriz complexas que precisam de números de linha para calcular um resultado.
Com SEQUENCE
Com a função SEQUENCE, a fórmula para retornar números de linha relativos para um intervalo é simples:
=SEQUENCE(ROWS(range))
A função ROWS fornece a contagem de linhas, que é retornada à função SEQUENCE. SEQUENCE, então, cria uma matriz de números, começando com o número 1. Portanto, seguindo o exemplo original acima, a fórmula abaixo retorna o mesmo resultado:
=SEQUENCE(ROWS(B5:B11)) // returns (1;2;3;4;5;6;7)
Observação: a fórmula SEQUENCE é uma nova função de matriz dinâmica disponível apenas no Excel 365.