Formula Excel: FILTRO con criteri multipli complessi -

Sommario

Sommario

Per filtrare ed estrarre i dati in base a più criteri complessi, è possibile utilizzare la funzione FILTER con una catena di espressioni che utilizzano la logica booleana. Nell'esempio mostrato, la formula in G5 è:

=FILTER(B5:E16,(LEFT(B5:B16)="x")*(C5:C16="east")*NOT(MONTH(D5:D16)=4))

Questa formula restituisce dati in cui:

l'account inizia con "x" E la regione è "est" e il mese NON è aprile.

Spiegazione

In questo esempio, dobbiamo costruire la logica che filtra i dati per includere:

l'account inizia con "x" E la regione è "est" e il mese NON è aprile.

La logica di filtraggio di questa formula (l'argomento include) viene creata concatenando tre espressioni che utilizzano la logica booleana su array nei dati. La prima espressione utilizza la funzione SINISTRA per verificare se Account inizia con "x":

LEFT(B5:B16)="x" // account begins with "x"

Il risultato è un array di valori TRUE FALSE come questo:

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

La seconda espressione verifica se Region è "east" con l'operatore uguale a (=):

C5:C16="east" // region is east

Il risultato è un altro array:

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

La terza espressione utilizza la funzione MESE con la funzione NOT per verificare se il mese non è aprile:

NOT(MONTH(D5:D16)=4) // month is not april

che produce:

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

Notare che la funzione NOT inverte il risultato dell'espressione MESE.

Tutti e tre gli array vengono moltiplicati insieme. L'operazione matematica forza i valori VERO e FALSO a 1 e 0, quindi a questo punto possiamo visualizzare l'argomento include in questo modo:

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

La moltiplicazione booleana corrisponde alla funzione logica AND, quindi il risultato finale è un singolo array come questo:

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

La funzione FILTER utilizza questa matrice per filtrare i dati e restituisce le quattro righe che corrispondono agli 1 nella matrice.

Criteri di estensione

Le espressioni utilizzate per creare l'argomento include in filter possono essere estese secondo necessità per gestire filtri ancora più complessi. Ad esempio, per filtrare ulteriormente i dati in modo da includere solo le righe con importo> 10000, puoi utilizzare una formula come questa:

=FILTER(B5:E16,(LEFT(B5:B16)="x")*(C5:C16="east")*NOT(MONTH(D5:D16)=4)*(E5:E16>10000))

Articoli interessanti...