Excel-formel: Filtrera data mellan datum -

Innehållsförteckning

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.

Intressanta artiklar...