Fórmula do Excel: Filtro exclui valores em branco -

Índice

Fórmula genérica

=FILTER(data,(rng1"")*(rng2"")*(rng3""))

Resumo

Para filtrar linhas com células em branco ou vazias, você pode usar a função FILTER com lógica booleana. No exemplo mostrado, a fórmula em F5 é:

=FILTER(B5:D15,(B5:B15"")*(C5:C15"")*(D5:D15""))

A saída contém apenas linhas dos dados de origem onde todas as três colunas têm um valor.

Explicação

A função FILTER foi projetada para extrair dados que correspondam a um ou mais critérios. Nesse caso, queremos aplicar critérios que exigem que todas as três colunas nos dados de origem (Nome, Grupo e Sala) tenham dados. Em outras palavras, se uma linha estiver faltando algum desses valores, queremos excluir essa linha da saída.

Para fazer isso, usamos três expressões booleanas operando em matrizes. A primeira expressão testa nomes em branco:

B5:B15"" // check names

O operador not () com uma string vazia ("") se traduz em "não vazio". Para cada célula no intervalo B5: B15, o resultado será TRUE ou FALSE, onde TRUE significa "não vazio" e FALSE significa "vazio". Como há 11 células no intervalo, obtemos 11 resultados em uma matriz como esta:

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

A segunda expressão testa grupos em branco:

C5:C15"" // check groups

Novamente, estamos verificando 11 células, portanto, obtemos 11 resultados:

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

Por fim, verificamos os números dos quartos em branco:

D5:D15"" // check groups

que produz:

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

Quando as matrizes que resultam das três expressões acima são multiplicadas juntas, a operação matemática força os valores TRUE e FALSE para 1s e 0s. Usamos multiplicação neste caso, porque queremos impor a lógica "AND": expressão1 AND expressão2 AND expressão3. Em outras palavras, todas as três expressões devem retornar TRUE em uma determinada linha.

Seguindo as regras da lógica booleana, o resultado final é uma matriz como esta:

(1;0;1;0;1;1;1;0;0;0;1)

Essa matriz é entregue diretamente à função FILTER como o argumento de inclusão. FILTER inclui apenas as 6 linhas que correspondem a 1s na saída final.

Artigos interessantes...