Формула Excel: Формула випадкового сортування -

Зміст

Загальна формула

=INDEX(data,MATCH(ROWS(exp_range),sort_values,0))

Резюме

Для випадкового сортування наявних значень за допомогою формули можна використовувати формулу INDEX і MATCH разом із допоміжними стовпцями, як показано на скріншоті. У наведеному прикладі формула в E5 має вигляд:

=INDEX(names,MATCH(ROWS($D$5:$D5),sort,0))

де "names" - іменований діапазон B5: B11, "rand" - іменований діапазон C5: C11, а "sort" - іменований діапазон D5: D11.

Пояснення

Ця формула залежить від двох допоміжних стовпців. Перший допоміжний стовпець містить випадкові значення, створені за допомогою функції RAND (). Скопійована формула в C5:

=RAND()

Функція RAND генерує випадкове значення в кожному рядку.

Примітка: RAND - це летюча функція, яка генеруватиме нові значення при кожній зміні робочого аркуша.

Другий допоміжний стовпець містить цифри, що використовуються для сортування даних, сформованих за формулою. Формула в D5:

=RANK(C5,rand)+COUNTIF($C$5:C5,C5)-1

Пояснення цієї формули див. На цій сторінці.

Формула в E5:

=INDEX(names,MATCH(ROWS($D$5:$D5),sort,0))

Тут функція INDEX використовується для отримання значень у названому діапазоні "імена", використовуючи значення сортування в іменованому діапазоні "сортування". Фактична робота з з’ясуванням значення, яке потрібно отримати, виконується моєю функцією MATCH у цьому фрагменті:

MATCH(ROWS($D$5:$D5),sort,0)

Усередині функції MATCH функції ROWS надається розширювальний діапазон як значення підстановки, яке починається як одна клітинка, і розширюється під час копіювання формули в стовпець. Це збільшує значення пошуку, починаючи з 1 і продовжуючи до 7. MATCH потім повертає позицію значення пошуку в списку.

Позиція подається до INDEX як номер рядка, і INDEX отримує ім'я в цій позиції.

Цікаві статті...