Formula Excel: FILTRO con più criteri OR -

Sommario

Sommario

Per estrarre dati con più condizioni OR, è possibile utilizzare la funzione FILTRO insieme alla funzione CONFRONTA. Nell'esempio mostrato, la formula in F9 è:

=FILTER(B5:D16, ISNUMBER(MATCH(items,F5:F6,0))* ISNUMBER(MATCH(colors,G5:G6,0))* ISNUMBER(MATCH(cities,H5:H6,0)))

dove gli elementi (B3: B16), i colori (C3: C16) e le città (D3: D16) sono denominati intervalli.

Questa formula restituisce i dati in cui l'elemento è (magliette O felpa con cappuccio) E il colore è (rosso O blu) E la città è (Denver OR Seattle).

Spiegazione

In questo esempio, i criteri vengono inseriti nell'intervallo F5: H6. La logica della formula è:

l'articolo è (maglietta O felpa con cappuccio) E il colore è (rosso O blu) E la città è (Denver O Seattle)

La logica di filtraggio di questa formula (l'argomento include) viene applicata con le funzioni ISNUMBER e MATCH, insieme alla logica booleana applicata in un'operazione array.

MATCH è configurato "all'indietro", con valori di ricerca provenienti dai dati e criteri utilizzati per l'array di ricerca. Ad esempio, la prima condizione è che gli articoli devono essere una maglietta o una felpa con cappuccio. Per applicare questa condizione, MATCH è impostato in questo modo:

MATCH(items,F5:F6,0) // check for tshirt or hoodie

Poiché ci sono 12 valori nei dati, il risultato è un array con 12 valori come questo:

(1;#N/A;#N/A;2;#N/A;2;2;#N/A;1;#N/A;2;1)

Questo array contiene errori # N / A (nessuna corrispondenza) o numeri (corrispondenza). I numeri di avviso corrispondono agli articoli che possono essere Tshirt o Felpa con cappuccio. Per convertire questo array in valori VERO e FALSO, la funzione CONFRONTA è racchiusa nella funzione NUMERO ISTANTANEO:

ISNUMBER(MATCH(items,F5:F6,0))

che produce un array come questo:

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

In questo array, i valori TRUE corrispondono a tshirt o hoodie.

La formula completa contiene tre espressioni come quella sopra usata per l'argomento include della funzione FILTER:

ISNUMBER(MATCH(items,F5:F6,0))* // tshirt or hoodie ISNUMBER(MATCH(colors,G5:G6,0))* // red or blue ISNUMBER(MATCH(cities,H5:H6,0))) // denver or seattle

Dopo che MATCH e ISNUMBER sono stati valutati, abbiamo tre array contenenti valori TRUE e FALSE. L'operazione matematica di moltiplicare questi array insieme costringe i valori TRUE e FALSE a 1 e 0, quindi possiamo visualizzare gli array a questo punto in questo modo:

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

Il risultato, seguendo le regole dell'aritmetica booleana, è un singolo array:

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

che diventa l'argomento include nella funzione FILTER:

=FILTER(B5:D16,(1;0;0;0;0;1;0;0;0;0;0;1))

Il risultato finale sono le tre righe di dati mostrate in F9: H11

Con valori hardcoded

Sebbene la formula nell'esempio utilizzi criteri immessi direttamente nel foglio di lavoro, i criteri possono essere codificati come costanti di matrice in questo modo:

=FILTER(B5:D16, ISNUMBER(MATCH(items,("Tshirt";"Hoodie"),0))* ISNUMBER(MATCH(colors,("Red";"Blue"),0))* ISNUMBER(MATCH(cities,("Denver";"Seattle"),0)))

Articoli interessanti...