![](https://cdn.wiki-base.com/5077668/excel_formula_filter_horizontal_data__2.png.webp)
Formula generica
=FILTER(data,logic)
Sommario
Per filtrare i dati disposti orizzontalmente in colonne, è possibile utilizzare la funzione FILTRO. Nell'esempio mostrato, la formula in C9 è:
=TRANSPOSE(FILTER(data,group="fox"))
dove i dati (C4: L6) e il gruppo (C5: L5) sono denominati intervalli.
Spiegazione
Nota: FILTER è una nuova funzione di matrice dinamica in Excel 365. In altre versioni di Excel, ci sono alternative, ma sono più complesse.
Ci sono dieci colonne di dati nell'intervallo C4: L6. L'obiettivo è filtrare questi dati orizzontali ed estrarre solo le colonne (record) in cui il gruppo è "volpe". Per comodità e leggibilità, il foglio di lavoro contiene tre intervalli denominati: dati (C4: L6) e gruppo (C5: L5) ed età (C6: L6).
La funzione FILTER può essere utilizzata per estrarre i dati disposti verticalmente (in righe) o orizzontalmente (in colonne). FILTER restituirà i dati corrispondenti con lo stesso orientamento. Non è richiesta alcuna configurazione speciale. Nell'esempio mostrato, la formula in C9 è:
=FILTER(data,group="fox")
Lavorando dall'interno verso l'esterno, l'argomento include per FILTER è un'espressione logica:
group="fox" // test for "fox"
Quando l'espressione logica viene valutata, restituisce un array di 10 valori TRUE e FALSE:
(TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE)
Nota: le virgole (,) in questo array indicano le colonne. Il punto e virgola (;) indica le righe.
La matrice contiene un valore per colonna nei dati e ogni VERO corrisponde a una colonna in cui il gruppo è "volpe". Questo array viene restituito direttamente a FILTER come argomento include ed esegue il filtro effettivo:
FILTER(data,(TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE))
Solo i dati che corrispondono ai valori TRUE passano il filtro, quindi FILTER restituisce le 6 colonne in cui il gruppo è "volpe". FILTER restituisce questi dati nella struttura orizzontale originale. Poiché FILTER è una funzione di matrice dinamica, i risultati si estendono nell'intervallo C9: H11.
Questa è una soluzione dinamica: se i dati di origine in C4: L6 vengono modificati, i risultati di FILTER vengono aggiornati automaticamente.
Trasponi in formato verticale
Per trasporre i risultati dal filtro in un formato verticale (righe), puoi avvolgere la funzione TRANSPOSE attorno alla funzione FILTER in questo modo:
=TRANSPOSE(FILTER(data,group="fox"))
Il risultato è questo:
Questa formula è spiegata in maggior dettaglio qui.
Filtra per età
La stessa formula di base può essere utilizzata per filtrare i dati in modi diversi. Ad esempio, per filtrare i dati per mostrare solo le colonne in cui l'età è inferiore a 22, puoi utilizzare una formula come questa:
=FILTER(data,age<22)
FILTER restituisce le quattro colonne di dati corrispondenti: