Excel-formel: Filtrer data mellem datoer -

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.

Interessante artikler...