Generisk formel
=FILTRER(data;(datoer>=A1)*(datoer<=A2);"Ingen data")
Resumé
For at filtrere data til der inkluderer poster mellem to datoer, kan du bruge funktionen FILTRER med boolesk logik. I det viste eksempel er formlen i F8:
=FILTRER(A2:C14;(B2:B14>=E2)*(B2:B14<=F2);"Ingen data")
Som returnerer poster med datoer mellem 23. november og 6. december begge inklusive.
Forklaring
Denne formel bruger funktionen FILTRER til at hente data baseret på en logisk test oprettet med et boolesk logisk udtryk. Array-argumentet leveres som A2:C14, som indeholder det fulde sæt af data uden overskrifter. Inkluderingsargumentet er baseret på to logiske sammenligninger:
(B2:B14>=E2)*(B2:B14<=F2)
Udtrykket til venstre kontrollerer, om datoer er større end eller lig med Fra-datoen i E2. Dette er et eksempel på boolesk logik. Udtrykket til højre kontrollerer, om datoer er mindre end eller lig med Til-datoen i F2. De to udtryk er forbundet med en multiplikationsoperator, som skaber en OG-relation.
Efter at logiske udtryk er evalueret, har vi:
({FALSK;FALSK;FALSK;SAND;SAND;SAND;SAND;SAND;SAND;SAND;SAND;SAND;SAND})*
{SAND;SAND;SAND;SAND;SAND;SAND;SAND;SAND;SAND;FALSK;FALSK;FALSK;FALSK}
Bemærk, at der er tretten resultater i hvert sæt parenteser, et for hver dato i dataene. Multiplikationsoperationen tvinger SAND og FALSK til værdierne til 1 og 0, så det endelige resultat er et enkelt array som dette:
{0;0;0;1;1;1;1;1;1;0;0;0;0}
Bemærk, at de seks 1’ere i arrayet svarer til de seks datoer, der består testen. Dette array leveres til funktionen FILTRER og bruges til at filtrere dataene. Kun rækker, hvor resultatet er 1, vises i det endelige output.
Argumentet hvis_tom er sat til “Ingen data”, hvis der ikke findes nogen matchende data.