Formula Excel: filtra e trasponi da orizzontale a verticale -

Formula generica

=TRANSPOSE(FILTER(data,logic))

Sommario

Per filtrare i dati disposti orizzontalmente e visualizzare il risultato in formato verticale, è possibile utilizzare la funzione FILTER insieme a TRANSPOSE. Nell'esempio mostrato, la formula in B10 è:

=TRANSPOSE(FILTER(data,group="fox"))

dove i dati (C4: L6) e il gruppo (C5: L5) sono denominati intervalli.

Spiegazione

L'obiettivo è filtrare i dati orizzontali nell'intervallo C4: L6 per estrarre i membri del gruppo "volpe" e visualizzare i risultati con i dati trasposti in formato verticale. Per comodità e leggibilità, abbiamo due intervalli denominati con cui lavorare: dati (C4: L6) e gruppo (C5: L5).

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. La formula in B5 è:

=TRANSPOSE(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 record nei dati e ogni VERO corrisponde a una colonna in cui il gruppo è "volpe". Questo array viene restituito direttamente a FILTER come argomento include, dove esegue il filtraggio effettivo:

FILTER(data,(TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE))

Solo i dati nelle colonne che corrispondono a TRUE passano attraverso il filtro, quindi il risultato sono i dati per le sei persone nel gruppo "volpe". FILTER restituisce questi dati nella struttura orizzontale originale. Poiché vogliamo visualizzare i risultati di FILTER in un formato verticale, la funzione TRANSPOSE è avvolta attorno alla funzione FILTER:

=TRANSPOSE(FILTER(data,group="fox"))

La funzione TRANSPOSE traspone i dati e restituisce una matrice verticale come risultato finale nella cella B10. Poiché FILTER è una funzione di matrice dinamica, i risultati si estendono nell'intervallo B10: D15. Se i dati nei dati (C4: L6) cambiano, il risultato di FILTER viene aggiornato automaticamente.

Articoli interessanti...