
Загальна формула
=SORTBY(data,LEN(data),-1)
Резюме
Для сортування текстових рядків за довжиною у порядку зростання або зменшення можна скористатися формулою на основі функцій SORTBY та LEN. У наведеному прикладі формула в D5 має вигляд:
=SORTBY(B5:B15,LEN(B5:B15),-1)
який сортує текстові значення у стовпці B за довжиною рядка в порядку зменшення.
Пояснення
Функція SORTBY може сортувати значення в діапазоні за допомогою масиву, який не існує на аркуші.
У цьому прикладі ми хочемо відсортувати значення в B5: B15 за кількістю символів, що містяться в кожному рядку. Працюючи зсередини, ми використовуємо функцію LEN, щоб отримати довжину кожного значення:
LEN(B5:B15) // get length of all strings
Оскільки ми надаємо LEN масив з 11 значеннями, ми отримуємо масив з 11 довжинами:
(5;7;14;6;5;13;9;4;8;6;11)
Кожне число представляє довжину символу значення в B5: B11.
Цей масив повертається безпосередньо до функції SORTBY як аргумент by_array1:
=SORTBY(B5:B15,(5;7;14;6;5;13;9;4;8;6;11),-1)
Функція SORTBY дозволяє сортувати на основі одного або декількох масивів "сортувати за", якщо розміри сумісні з вихідними даними. У цьому випадку у вихідних даних є 11 рядків та 11 рядків у масиві, що повертається LEN, тому вимога виконана.
Функція SORTBY використовує масив довжин, повернутий LEN, для сортування значень у B5: B15 і повертає відсортовані результати до D5 у динамічному масиві. Оскільки порядок сортування встановлений на -1, значення сортуються у зворотному (спадному) порядку за довжиною. Використовуйте додатне 1, щоб сортувати за зростанням.