Formula di Excel: il filtro esclude i valori vuoti -

Sommario

Formula generica

=FILTER(data,(rng1"")*(rng2"")*(rng3""))

Sommario

Per filtrare le righe con celle vuote o vuote, è possibile utilizzare la funzione FILTRO con logica booleana. Nell'esempio mostrato, la formula in F5 è:

=FILTER(B5:D15,(B5:B15"")*(C5:C15"")*(D5:D15""))

L'output contiene solo righe dei dati di origine in cui tutte e tre le colonne hanno un valore.

Spiegazione

La funzione FILTER è progettata per estrarre i dati che corrispondono a uno o più criteri. In questo caso, vogliamo applicare criteri che richiedono che tutte e tre le colonne nei dati di origine (Nome, Gruppo e Stanza) contengano dati. In altre parole, se in una riga manca uno di questi valori, si desidera escludere quella riga dall'output.

Per fare ciò, usiamo tre espressioni booleane che operano su array. La prima espressione verifica i nomi vuoti:

B5:B15"" // check names

L'operatore not () con una stringa vuota ("") si traduce in "non vuoto". Per ogni cella nell'intervallo B5: B15, il risultato sarà TRUE o FALSE, dove TRUE significa "non vuoto" e FALSE significa "vuoto". Poiché ci sono 11 celle nell'intervallo, otteniamo 11 risultati in un array come questo:

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

La seconda espressione verifica i gruppi vuoti:

C5:C15"" // check groups

Ancora una volta, stiamo controllando 11 celle, quindi otteniamo 11 risultati:

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

Infine, controlliamo i numeri delle stanze vuote:

D5:D15"" // check groups

che produce:

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

Quando le matrici risultanti dalle tre espressioni precedenti vengono moltiplicate insieme, l'operazione di matematica forza i valori VERO e FALSO a 1 e 0. Usiamo la moltiplicazione in questo caso, perché vogliamo applicare la logica "AND": espressione1 AND espressione2 AND espressione3. In altre parole, tutte e tre le espressioni devono restituire TRUE in una determinata riga.

Seguendo le regole della logica booleana, il risultato finale è un array come questo:

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

Questo array viene consegnato direttamente alla funzione FILTER come argomento include. FILTER include solo le 6 righe che corrispondono a 1 nell'output finale.

Articoli interessanti...