
Formuła ogólna
=SORTBY(data,LEN(data),-1)
Podsumowanie
Aby posortować ciągi tekstowe według długości w porządku rosnącym lub malejącym, można użyć formuły opartej na funkcjach SORTUJ WG i DŁ. W przedstawionym przykładzie formuła w D5 to:
=SORTBY(B5:B15,LEN(B5:B15),-1)
który sortuje wartości tekstowe w kolumnie B według długości łańcucha, w porządku malejącym.
Wyjaśnienie
Funkcja SORTBY może sortować wartości w zakresie z tablicą, której nie ma w arkuszu.
W tym przykładzie chcemy posortować wartości w B5: B15 według liczby znaków, które zawiera każdy ciąg. Pracując od wewnątrz, używamy funkcji DŁ, aby uzyskać długość każdej wartości:
LEN(B5:B15) // get length of all strings
Ponieważ dajemy LEN tablicę z 11 wartościami, otrzymujemy tablicę o 11 długościach:
(5;7;14;6;5;13;9;4;8;6;11)
Każda liczba reprezentuje długość znaku wartości w B5: B11.
Ta tablica jest zwracana bezpośrednio do funkcji SORTBY jako argument by_array1:
=SORTBY(B5:B15,(5;7;14;6;5;13;9;4;8;6;11),-1)
Funkcja SORTBY umożliwia sortowanie w oparciu o jedną lub więcej tablic typu „sort by”, o ile wymiary są zgodne z danymi źródłowymi. W tym przypadku w danych źródłowych znajduje się 11 wierszy, a w tablicy zwróconych przez LEN 11 wierszy, więc wymaganie jest spełnione.
Funkcja SORTBY używa tablicy długości zwróconej przez LEN do sortowania wartości w B5: B15 i zwraca posortowane wyniki do D5 w tablicy dynamicznej. Ponieważ kolejność sortowania jest ustawiona na -1, wartości są sortowane w kolejności odwrotnej (malejącej) według długości. Użyj dodatniej 1, aby posortować w kolejności rosnącej.