
Obecný vzorec
=SORTBY(data,LEN(data),-1)
souhrn
Chcete-li třídit textové řetězce podle délky ve vzestupném nebo sestupném pořadí, můžete použít vzorec založený na funkcích SORTBY a LEN. V zobrazeném příkladu je vzorec v D5:
=SORTBY(B5:B15,LEN(B5:B15),-1)
který seřadí textové hodnoty ve sloupci B podle délky řetězce v sestupném pořadí.
Vysvětlení
Funkce SORTBY může řadit hodnoty v rozsahu s polem, které na listu neexistuje.
V tomto příkladu chceme řadit hodnoty v B5: B15 podle počtu znaků, které každý řetězec obsahuje. Při práci zevnitř ven používáme funkci LEN k získání délky každé hodnoty:
LEN(B5:B15) // get length of all strings
Protože dáme LEN pole s 11 hodnotami, dostaneme pole s 11 délkami:
(5;7;14;6;5;13;9;4;8;6;11)
Každé číslo představuje délku znaku hodnoty v B5: B11.
Toto pole se vrací přímo do funkce SORTBY jako argument by_array1:
=SORTBY(B5:B15,(5;7;14;6;5;13;9;4;8;6;11),-1)
Funkce SORTBY umožňuje třídění na základě jednoho nebo více polí „setřídit podle“, pokud jsou rozměry kompatibilní se zdrojovými daty. V tomto případě je ve zdrojových datech 11 řádků a 11 řádků v poli vráceném LEN, takže je požadavek splněn.
Funkce SORTBY používá pole délek vrácené funkcí LEN k seřazení hodnot v B5: B15 a vrací seřazené výsledky do D5 v dynamickém poli. Protože je pořadí řazení nastaveno na -1, jsou hodnoty seřazeny v opačném (sestupném) pořadí podle délky. K seřazení vzestupně použijte kladnou 1.