Fórmula do Excel: filtrar a cada enésima linha -

Índice

Fórmula genérica

=FILTER(rng,MOD(SEQUENCE(ROWS(rng)),n)=0)

Resumo

Para filtrar e extrair cada enésima linha, você pode usar uma fórmula baseada na função FILTER junto com MOD, ROW e SEQUENCE. No exemplo mostrado, a fórmula em F5 é:

=FILTER(data,MOD(SEQUENCE(ROWS(data)),3)=0)

onde os dados são o intervalo nomeado D5: D16. Com n codificado na fórmula como 3, a função FILTER retorna a cada 3ª linha nos dados.

Explicação

A função FILTER foi projetada para filtrar e extrair informações com base em critérios lógicos. Neste exemplo, o objetivo é extrair cada terceiro registro dos dados mostrados, mas não há informações de número de linha nos dados.

Trabalhando de dentro para fora, a primeira etapa é gerar um conjunto de números de linha. Isso é feito com a função SEQUENCE assim:

SEQUENCE(ROWS(data))

A função ROW retorna a contagem de linhas nos dados do intervalo nomeado . Usando a contagem de linhas, SEQUENCE retorna uma matriz de 12 números em sequência:

(1;2;3;4;5;6;7;8;9;10;11;12)

Essa matriz é retornada diretamente para a função MOD como o argumento de número, com o número 3 codificado como divisor. O MOD é configurado para testar se os números das linhas são divisíveis por 3 com um resto de zero

MOD(SEQUENCE(ROWS(data)),3)=0 // divisible by 3?

O resultado do MOD é uma matriz ou valores TRUE e FALSE como este:

(FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE)

Nota Valores TRUE correspondem a cada 3ª linha nos dados. Essa matriz é entregue diretamente à função FILTER como o argumento de inclusão. FILTER retorna cada 3ª linha de dados como resultado final.

Artigos interessantes...