Excel-formule: gegevens filteren tussen datums -

Generieke formule

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

Samenvatting

Om gegevens te filteren om records tussen twee datums op te nemen, kunt u de FILTER-functie met booleaanse logica gebruiken. In het getoonde voorbeeld is de formule in F8:

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

Hiermee worden records geretourneerd met datums tussen 15 januari en 15 maart.

Uitleg

Deze formule is afhankelijk van de FILTER-functie om gegevens op te halen op basis van een logische test die is gemaakt met een booleaanse logische uitdrukking. Het array-argument wordt geleverd als B5: D15, dat de volledige set gegevens bevat zonder kopteksten. Het include- argument is gebaseerd op twee logische vergelijkingen:

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

De uitdrukking aan de linkerkant controleert of datums groter zijn dan of gelijk zijn aan de "Van" -datum in F5. Dit is een voorbeeld van booleaanse logica. De uitdrukking aan de rechterkant controleert of datums kleiner zijn dan of gelijk zijn aan de "Tot" -datum in G5. De twee uitdrukkingen worden samengevoegd met een vermenigvuldigingsoperator, waardoor een EN-relatie ontstaat.

Nadat logische uitdrukkingen zijn geëvalueerd, hebben we:

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

Merk op dat er elf resultaten zijn in elke set haakjes, één voor elke datum in de gegevens. De vermenigvuldigingsbewerking dwingt de TRUE FALSE-waarden naar 1s en 0s, dus het eindresultaat is een enkele array zoals deze:

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

Merk op dat de vier 1-en in de array overeenkomen met de vier datums waarop de test is geslaagd. Deze array wordt geleverd aan de FILTER-functie en gebruikt om de gegevens te filteren. Alleen rijen waarvan het resultaat 1 is, komen in de uiteindelijke uitvoer.

Het "if_empty" -argument wordt ingesteld op "Geen gegevens" voor het geval er geen overeenkomende gegevens worden gevonden.

Interessante artikelen...