Fórmula do Excel: filtrar dados entre datas -

Fórmula genérica

=FILTER(data,(dates>=A1)*(dates<=A2),"No data")

Resumo

Para filtrar dados para incluir registros entre duas datas, você pode usar a função FILTER com lógica booleana. No exemplo mostrado, a fórmula em F8 é:

=FILTER(B5:D15,(C5:C15>=F5)*(C5:C15<=G5),"No data")

Que retorna registros com datas entre 15 de janeiro e 15 de março, inclusive.

Explicação

Esta fórmula depende da função FILTER para recuperar dados com base em um teste lógico criado com uma expressão lógica booleana. O argumento da matriz é fornecido como B5: D15, que contém o conjunto completo de dados sem cabeçalhos. O argumento de inclusão é baseado em duas comparações lógicas:

(C5:C15>=F5)*(C5:C15<=G5)

A expressão à esquerda verifica se as datas são maiores ou iguais à data "De" em F5. Este é um exemplo de lógica booleana. A expressão à direita verifica se as datas são menores ou iguais à data "Até" em G5. As duas expressões são unidas com um operador de multiplicação, que cria um relacionamento AND.

Depois que as expressões lógicas são avaliadas, temos:

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

Observe que há onze resultados em cada conjunto de parênteses, um para cada data nos dados. A operação de multiplicação força os valores TRUE FALSE para 1s e 0s, então o resultado final é uma única matriz como esta:

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

Observe que os quatro 1s na matriz correspondem às quatro datas que passam no teste. Este array é entregue à função FILTER e usado para filtrar os dados. Somente as linhas em que o resultado é 1 chegam à saída final.

O argumento "if_empty" é definido como "Nenhum dado" caso nenhum dado correspondente seja encontrado.

Artigos interessantes...