
Fórmula genérica
=FILTER(data,(dates>=A1)*(dates<=A2),"No data")
Resumen
Para filtrar datos para incluir registros entre dos fechas, puede usar la función FILTRO con lógica booleana. En el ejemplo que se muestra, la fórmula en F8 es:
=FILTER(B5:D15,(C5:C15>=F5)*(C5:C15<=G5),"No data")
Que devuelve registros con fechas entre el 15 de enero y el 15 de marzo, inclusive.
Explicación
Esta fórmula se basa en la función FILTRO para recuperar datos basados en una prueba lógica creada con una expresión lógica booleana. El argumento de la matriz se proporciona como B5: D15, que contiene el conjunto completo de datos sin encabezados. El argumento de inclusión se basa en dos comparaciones lógicas:
(C5:C15>=F5)*(C5:C15<=G5)
La expresión de la izquierda comprueba si las fechas son mayores o iguales que la fecha "Desde" en F5. Este es un ejemplo de lógica booleana. La expresión de la derecha comprueba si las fechas son menores o iguales que la fecha "Hasta" en G5. Las dos expresiones se unen con un operador de multiplicación, que crea una relación Y.
Después de evaluar las expresiones lógicas, tenemos:
((TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE))* ((TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE))
Tenga en cuenta que hay once resultados en cada conjunto de paréntesis, uno para cada fecha en los datos. La operación de multiplicación coacciona los valores VERDADERO FALSO a 1 y 0, por lo que el resultado final es una única matriz como esta:
(1;1;1;1;0;0;0;0;0;0;0)
Tenga en cuenta que los cuatro 1 de la matriz corresponden a las cuatro fechas que pasan la prueba. Esta matriz se entrega a la función FILTRO y se usa para filtrar los datos. Solo las filas donde el resultado es 1 se convierten en la salida final.
El argumento "if_empty" se establece en "Sin datos" en caso de que no se encuentren datos coincidentes.