
Formula generica
=FILTER(data,(dates>=A1)*(dates<=A2),"No data")
Sommario
Per filtrare i dati per includere i record tra due date, è possibile utilizzare la funzione FILTER con logica booleana. Nell'esempio mostrato, la formula in F8 è:
=FILTER(B5:D15,(C5:C15>=F5)*(C5:C15<=G5),"No data")
Che restituisce record con date comprese tra il 15 gennaio e il 15 marzo inclusi.
Spiegazione
Questa formula si basa sulla funzione FILTER per recuperare i dati in base a un test logico creato con un'espressione logica booleana. L'argomento della matrice viene fornito come B5: D15, che contiene il set completo di dati senza intestazioni. L' argomento include si basa su due confronti logici:
(C5:C15>=F5)*(C5:C15<=G5)
L'espressione a sinistra controlla se le date sono maggiori o uguali alla data "Da" in F5. Questo è un esempio di logica booleana. L'espressione a destra controlla se le date sono minori o uguali alla data "A" in G5. Le due espressioni sono unite con un operatore di moltiplicazione, che crea una relazione AND.
Dopo che le espressioni logiche sono state valutate, abbiamo:
((TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE))* ((TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE))
Nota che ci sono undici risultati in ogni serie di parentesi, uno per ogni data nei dati. L'operazione di moltiplicazione forza i valori VERO FALSO a 1 e 0, quindi il risultato finale è un singolo array come questo:
(1;1;1;1;0;0;0;0;0;0;0)
Notare che i quattro 1 nella matrice corrispondono alle quattro date che superano il test. Questa matrice viene fornita alla funzione FILTER e utilizzata per filtrare i dati. Solo le righe in cui il risultato è 1 vengono inserite nell'output finale.
L'argomento "if_empty" è impostato su "Nessun dato" nel caso in cui non vengano trovati dati corrispondenti.