
Všeobecný vzorec
=SORTBY(data,LEN(data),-1)
Zhrnutie
Ak chcete zoradiť textové reťazce podľa dĺžky vo vzostupnom alebo zostupnom poradí, môžete použiť vzorec založený na funkciách SORTBY a LEN. V zobrazenom príklade je vzorec v D5:
=SORTBY(B5:B15,LEN(B5:B15),-1)
ktorý triedi textové hodnoty v stĺpci B podľa dĺžky reťazca v zostupnom poradí.
Vysvetlenie
Funkcia SORTBY môže triediť hodnoty v rozsahu s poľom, ktoré v hárku neexistuje.
V tomto príklade chceme triediť hodnoty v B5: B15 podľa počtu znakov, ktoré obsahuje každý reťazec. Pri práci zvnútra von používame funkciu LEN na získanie dĺžky každej hodnoty:
LEN(B5:B15) // get length of all strings
Pretože dáme LEN pole s 11 hodnotami, dostaneme pole s 11 dĺžkami:
(5;7;14;6;5;13;9;4;8;6;11)
Každé číslo predstavuje dĺžku znaku hodnoty v B5: B11.
Toto pole sa vracia priamo do funkcie SORTBY ako argument by_array1:
=SORTBY(B5:B15,(5;7;14;6;5;13;9;4;8;6;11),-1)
Funkcia SORTBY umožňuje triedenie na základe jedného alebo viacerých polí „triediť podľa“, pokiaľ sú dimenzie kompatibilné so zdrojovými údajmi. V tomto prípade je v zdrojových dátach 11 riadkov a v poli vrátenom LEN 11 riadkov, takže požiadavka je splnená.
Funkcia SORTBY používa pole dĺžok vrátené LEN na triedenie hodnôt v B5: B15 a vráti zoradené výsledky do D5 v dynamickom poli. Pretože je poradie zoradenia nastavené na -1, sú hodnoty zoradené v opačnom (zostupnom) poradí podľa dĺžky. Na kladné zoradenie vzostupne použite kladnú 1.