
Generisk formel
=FILTER(data,(dates>=A1)*(dates<=A2),"No data")
Sammanfattning
För att filtrera data för att inkludera poster mellan två datum kan du använda FILTER-funktionen med boolesk logik. I exemplet som visas är formeln i F8:
=FILTER(B5:D15,(C5:C15>=F5)*(C5:C15<=G5),"No data")
Som returnerar poster med datum mellan 15 januari och 15 mars.
Förklaring
Denna formel är beroende av FILTER-funktionen för att hämta data baserat på ett logiskt test skapat med ett booleskt logiskt uttryck. Arrayargumentet tillhandahålls som B5: D15, som innehåller hela datauppsättningen utan rubriker. Den omfattar argument bygger på två logiska jämförelser:
(C5:C15>=F5)*(C5:C15<=G5)
Uttrycket till vänster kontrollerar om datum är större än eller lika med "Från" -datumet i F5. Detta är ett exempel på boolesk logik. Uttrycket till höger kontrollerar om datum är mindre än eller lika med "Till" -datumet i G5. De två uttrycken är förenade med en multiplikationsoperator, vilket skapar ett AND-förhållande.
Efter att logiska uttryck har utvärderats har vi:
((TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE))* ((TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE))
Observera att det finns elva resultat i varje uppsättning parenteser, ett för varje datum i data. Multiplikationsoperationen tvingar de sanna FALSKA värdena till 1s och 0s, så det slutliga resultatet är en enda array som denna:
(1;1;1;1;0;0;0;0;0;0;0)
Observera att de fyra 1: erna i matrisen motsvarar de fyra datum som passerar testet. Denna matris levereras till FILTER-funktionen och används för att filtrera data. Endast rader där resultatet är 1 gör det till den slutliga utgången.
Argumentet "if_empty" är inställt på "Ingen data" om ingen matchande data hittas.