Сортування списку можна здійснити через менюДанние / група Сортування і фільтр / Сортування. У разі, якщо в початковий список постійно вводяться нові значення, то для підтримки списку в сортованому стані, користувач повинен кожен раз вручну сортувати список через меню, що не завжди зручно. Набагато зручніше мати динамічно сортують список. Список складається з текстових значень.
Рішення завдання про сортування списку з числами приведено в однойменній статті Сортований список (Числові значення). в якій використана функція НАЙМЕНШИЙ (). Якщо список містить тільки текстові значення, то функція НАЙМЕНШИЙ () вже не спрацює (див. Файл прикладу).
Для сортування списку з текстовими значеннями будемо використовувати операції порівняння. операції порівняння <,> як правило, використовується для числових значень, відмінно справляються і з текстовими значеннями. Наприклад, якщо порівнювати імена Міша і Маша. то Маша <Миша. Слова сравниваются побуквенно в соответствии с алфавитом. Сначала берутся 2 первые буквы (в нашем случае обе =М ), если они равны, то берутся вторые буквы и т.д. В нашем случае а<и (буква и по алфавиту идет после а ) и, следовательно, Маша <Миша.
Для зручності створимо Динамічний діапазон Список, що містить вихідний список текстових значень (без порожніх клітинок):
- викличте меню Формули / Певні імена / Присвоїти ім'я
- в поле Ім'я введіть Список;
- в поле Діапазон введіть формулу = зміщений ($ A $ 5 ;;; СЧЁТЗ ($ A $ 5: $ A $ 22))
- натисніть ОК.
Додамо службовий стовпець з формулою, за допомогою якої будуть попарно порівнюватися всі значення і, виводитися числа: скільки разів яке слово «більше» інших. Формула виглядає так:
= ЕСЛИ ($ A5<>""; СЧЁТЕСЛІ (Список; "<"&$A5)+1;"")
Таким чином, службовий стовпець міститиме позиції значень в новому відсортованому списку.
Далі в стовпці, який буде містити сортовані по зростанню значення, запишемо формулу:
= ЕСЛІОШІБКА (ІНДЕКС (Список; ПОИСКПОЗ (СТРОКА (A1); $ D $ 5: $ D $ 22; 0)); "")
Функції ІНДЕКС () і ПОИСКПОЗ () дозволяють вивести відповідні імена в правильному порядку.
Для сортування по спадаючій напишемо іншу формулу:
= ЕСЛІОШІБКА (ІНДЕКС (Список; ПОИСКПОЗ (СЧЁТЗ (Список) + 1-СТРОКА (A1); $ D $ 5: $ D $ 22; 0)); "")
Сортування списку з використанням формул масиву
Іншим варіантом сортування є варіант з використанням формул масиву.
В цьому випадку службовий стовпець не потрібен. Запишемо формулу масиву:
= ЕСЛІОШІБКА (ІНДЕКС (Список; ПОИСКПОЗ (НАЙМЕНШИЙ (СЧЁТЕСЛІ (Список; "<"&Список);
СТРОКА () - СТРОКА ($ K $ 5)); СЧЁТЕСЛІ (Список; "<"&Список);0));"")
Не забудьте натиснути CTRL + SHIFT + ENTER.
пов'язані статті
Прочитайте інші статті, які вирішують схожі завдання в MS Excel. Це дозволить Вам вирішувати широкий клас подібних задач.