
Formula generică
=SORTBY(data,LEN(data),-1)
rezumat
Pentru a sorta șirurile de text după lungime în ordine crescătoare sau descendentă, puteți utiliza o formulă bazată pe funcțiile SORTBY și LEN. În exemplul prezentat, formula din D5 este:
=SORTBY(B5:B15,LEN(B5:B15),-1)
care sortează valorile textului din coloana B după lungimea șirului, în ordine descrescătoare.
Explicaţie
Funcția SORTBY poate sorta valorile într-un interval cu o matrice care nu există pe foaia de lucru.
În acest exemplu, vrem să sortăm valorile din B5: B15 după numărul de caractere pe care le conține fiecare șir. Lucrând din interior spre exterior, folosim funcția LEN pentru a obține lungimea fiecărei valori:
LEN(B5:B15) // get length of all strings
Deoarece oferim LEN o matrice cu 11 valori, obținem o matrice cu 11 lungimi:
(5;7;14;6;5;13;9;4;8;6;11)
Fiecare număr reprezintă lungimea caracterelor unei valori în B5: B11.
Această matrice este returnată direct la funcția SORTBY ca argument by_array1:
=SORTBY(B5:B15,(5;7;14;6;5;13;9;4;8;6;11),-1)
Funcția SORTBY permite sortarea pe baza unuia sau mai multor tablouri „sortare după”, atâta timp cât dimensiunile sunt compatibile cu datele sursă. În acest caz, există 11 rânduri în datele sursă și 11 rânduri în tabloul returnat de LEN, deci cerința este îndeplinită.
Funcția SORTBY utilizează matricea de lungimi returnate de LEN pentru a sorta valorile din B5: B15 și returnează rezultatele sortate la D5 într-o matrice dinamică. Deoarece ordinea de sortare este setată la -1, valorile sunt sortate în ordine inversă (descendentă) după lungime. Folosiți un 1 pozitiv pentru a sorta în ordine crescătoare.