Formula di Excel: ordina il testo per lunghezza -

Formula generica

=SORTBY(data,LEN(data),-1)

Sommario

Per ordinare le stringhe di testo in base alla lunghezza in ordine crescente o decrescente, è possibile utilizzare una formula basata sulle funzioni SORTBY e LEN. Nell'esempio mostrato, la formula in D5 è:

=SORTBY(B5:B15,LEN(B5:B15),-1)

che ordina i valori di testo nella colonna B in base alla lunghezza della stringa, in ordine decrescente.

Spiegazione

La funzione SORTBY può ordinare i valori in un intervallo con una matrice che non esiste nel foglio di lavoro.

In questo esempio, vogliamo ordinare i valori in B5: B15 in base al numero di caratteri contenuti in ciascuna stringa. Lavorando dall'interno verso l'esterno, usiamo la funzione LEN per ottenere la lunghezza di ogni valore:

LEN(B5:B15) // get length of all strings

Poiché diamo a LEN un array con 11 valori, otteniamo un array con 11 lunghezze:

(5;7;14;6;5;13;9;4;8;6;11)

Ogni numero rappresenta la lunghezza del carattere di un valore in B5: B11.

Questo array viene restituito direttamente alla funzione SORTBY come argomento by_array1:

=SORTBY(B5:B15,(5;7;14;6;5;13;9;4;8;6;11),-1)

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, ci sono 11 righe nei dati di origine e 11 righe nell'array restituito da LEN, quindi il requisito è soddisfatto.

La funzione SORTBY utilizza la matrice di lunghezze restituite da LEN per ordinare i valori in B5: B15 e restituisce i risultati ordinati a D5 in una matrice dinamica. Poiché l'ordinamento è impostato su -1, i valori vengono ordinati in ordine inverso (decrescente) in base alla lunghezza. Usa un 1 positivo per ordinare in ordine crescente.

Articoli interessanti...