
Generisk formel
=FILTER(data,(dates>=A1)*(dates<=A2),"No data")
Resumé
For at filtrere data, så de inkluderer poster mellem to datoer, kan du bruge FILTER-funktionen med boolsk logik. I det viste eksempel er formlen i F8:
=FILTER(B5:D15,(C5:C15>=F5)*(C5:C15<=G5),"No data")
Hvilket returnerer poster med datoer mellem 15. januar og 15. marts inklusive.
Forklaring
Denne formel er afhængig af FILTER-funktionen til at hente data baseret på en logisk test oprettet med et boolsk logisk udtryk. Arrayargumentet leveres som B5: D15, som indeholder hele datasættet uden overskrifter. Den omfatter Argumentet er baseret på to logiske sammenligninger:
(C5:C15>=F5)*(C5:C15<=G5)
Udtrykket til venstre kontrollerer, om datoer er større end eller lig med "Fra" -datoen i F5. Dette er et eksempel på boolsk logik. Udtrykket til højre kontrollerer, om datoer er mindre end eller lig med "Til" -datoen i G5. De to udtryk er forbundet med en multiplikationsoperator, der skaber et AND-forhold.
Efter at logiske udtryk er evalueret, har vi:
((TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE))* ((TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE))
Bemærk, at der er elleve resultater i hvert sæt parenteser, et for hver dato i dataene. Multiplikationsoperationen tvinger de SANDE FALSKE værdier til 1s og 0s, så det endelige resultat er et enkelt array som dette:
(1;1;1;1;0;0;0;0;0;0;0)
Bemærk, at de fire 1'ere i arrayet svarer til de fire datoer, der består testen. Denne matrix leveres til FILTER-funktionen og bruges til at filtrere dataene. Kun rækker, hvor resultatet er 1, gør det til den endelige output.
Argumentet "if_empty" er indstillet til "Ingen data", hvis der ikke findes nogen matchende data.