
Generisk formel
=SORTBY(data,LEN(data),-1)
Sammanfattning
För att sortera textsträngar efter längd i stigande eller fallande ordning kan du använda en formel baserad på SORTBY- och LEN-funktionerna. I exemplet som visas är formeln i D5:
=SORTBY(B5:B15,LEN(B5:B15),-1)
som sorterar textvärdena i kolumn B efter stränglängd, i fallande ordning.
Förklaring
SORTBY-funktionen kan sortera värden i ett intervall med en matris som inte finns i kalkylbladet.
I det här exemplet vill vi sortera värdena i B5: B15 efter antalet tecken som varje sträng innehåller. När vi arbetar inifrån och ut använder vi LEN-funktionen för att få längden på varje värde:
LEN(B5:B15) // get length of all strings
Eftersom vi ger LEN en matris med 11 värden får vi en matris med 11 längder:
(5;7;14;6;5;13;9;4;8;6;11)
Varje nummer representerar teckenlängden för ett värde i B5: B11.
Denna matris returneras direkt till SORTBY-funktionen som by_array1 argument:
=SORTBY(B5:B15,(5;7;14;6;5;13;9;4;8;6;11),-1)
SORTBY-funktionen tillåter sortering baserat på en eller flera "sortera efter" matriser, så länge dimensioner är kompatibla med källdata. I det här fallet finns det 11 rader i källdata och 11 rader i matrisen som returneras av LEN, så kravet är uppfyllt.
SORTBY-funktionen använder den längdmatris som returneras av LEN för att sortera värdena i B5: B15 och returnerar sorterade resultat till D5 i en dynamisk matris. Eftersom sorteringsordningen är satt till -1 sorteras värdena i omvänd (fallande) ordning efter längd. Använd en positiv 1 för att sortera i stigande ordning.