
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.