Fórmula do Excel: filtrar e transpor de horizontal para vertical -

Índice

Fórmula genérica

=TRANSPOSE(FILTER(data,logic))

Resumo

Para filtrar dados organizados horizontalmente e exibir o resultado em formato vertical, você pode usar a função FILTER junto com TRANSPOSE. No exemplo mostrado, a fórmula em B10 é:

=TRANSPOSE(FILTER(data,group="fox"))

onde dados (C4: L6) e grupo (C5: L5) são intervalos nomeados.

Explicação

O objetivo é filtrar os dados horizontais no intervalo C4: L6 para extrair membros do grupo "raposa" e exibir os resultados com os dados transpostos para um formato vertical. Por conveniência e legibilidade, temos dois intervalos nomeados para trabalhar: dados (C4: L6) e grupo (C5: L5).

A função FILTER pode ser usada para extrair dados organizados verticalmente (em linhas) ou horizontalmente (em colunas). FILTER retornará os dados correspondentes na mesma orientação. A fórmula em B5 é:

=TRANSPOSE(FILTER(data,group="fox"))

Trabalhando de dentro para fora, o argumento include para FILTER é uma expressão lógica:

group="fox" // test for "fox"

Quando a expressão lógica é avaliada, ela retorna uma matriz de 10 valores TRUE e FALSE:

(TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE)

Nota: as vírgulas (,) nesta matriz indicam colunas. Ponto-e-vírgula (;) indicaria linhas.

O array contém um valor por registro nos dados, e cada TRUE corresponde a uma coluna onde o grupo é "raposa". Essa matriz é retornada diretamente para FILTER como o argumento de inclusão, onde faz a filtragem real:

FILTER(data,(TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE))

Apenas os dados nas colunas que correspondem a TRUE passam pelo filtro, então o resultado são dados para as seis pessoas no grupo "raposa". FILTER retorna esses dados na estrutura horizontal original. Como queremos exibir os resultados de FILTER em um formato vertical, a função TRANSPOSE envolve a função FILTER:

=TRANSPOSE(FILTER(data,group="fox"))

A função TRANSPOSE transpõe os dados e retorna uma matriz vertical como resultado final na célula B10. Como FILTER é uma função de matriz dinâmica, os resultados se estendem para a faixa B10: D15. Se os dados nos dados (C4: L6) mudarem, o resultado do FILTER será atualizado automaticamente.

Artigos interessantes...