Formula di Excel: ordina per elenco personalizzato -

Formula generica

=SORTBY(rng,MATCH(rng,custom,0))

Sommario

Per ordinare un elenco in un ordine personalizzato, è possibile combinare la funzione ORDINA con la funzione CONFRONTA. Nell'esempio mostrato, la tabella viene ordinata in base alla colonna "gruppo" utilizzando nell'ordine mostrato nelle celle J5: J7. La formula in D5 è:

=SORTBY(B5:D14,MATCH(D5:D14,custom,0))

dove "custom" è l'intervallo denominato J5: J7 che definisce l'ordinamento desiderato.

Spiegazione

In questo esempio, stiamo ordinando una tabella con 10 righe e 3 colonne. Nell'intervallo J5: J7 (l'intervallo denominato "personalizzato"), i colori "rosso", "blu" e "verde" sono elencati nell'ordinamento desiderato. L'obiettivo è ordinare la tabella utilizzando i valori nella colonna Gruppo nello stesso ordine personalizzato.

La funzione SORTBY consente l'ordinamento in base a uno o più array "ordina per", purché le dimensioni siano compatibili con i dati di origine. In questo caso, non possiamo utilizzare l'intervallo denominato "custom" direttamente in SORTBY, perché contiene solo 3 righe mentre la tabella contiene 10 righe.

Tuttavia, per creare un array con 10 righe che può essere utilizzato come array "ordina per", possiamo usare la funzione MATCH in questo modo:

MATCH(D5:D14,custom,0)

Si noti che stiamo passando i valori di gruppo in D5: D14 come valori di ricerca e utilizzando "personalizzato" come tabella di ricerca. Il risultato è un array come questo:

(2;1;3;3;2;3;1;2;3;1)

Ogni valore nella matrice rappresenta la posizione numerica del valore di gruppo specificato in "personalizzato", quindi sono rappresentate 10 righe. Questo array viene passato alla funzione SORTBY come argomento by_array1. SORTBY ordina la tabella nell'ordine "rosso", "blu", "verde" e restituisce il risultato come un intervallo di fuoriuscita a partire dalla cella D5.

Articoli interessanti...