Сортировка в случайном порядке списка ТЕКСТовых значений в EXCEL

history

Отсортируем исходный массив текстовых значений в случайном порядке.


Пусть задан диапазон ячеек содержащий текстовые значения ( A2:A8 ).

Задача

Отсортируем имена из диапазона A2:A8 в случайном порядке. Новый список разместим в столбце E .

Решение



Чтобы отсортировать список в случайном порядке будем действовать следующим образом (см. Файл примера ):

  • каждому значению списка сопоставим случайное число (для этого используем функцию СЛЧИС() ), расположив его в соседнем столбце C ;
  • для каждого случайного числа из столбца C с помощью формулы =РАНГ(C7;$C$7:$C$13) определим ранг — величину относительно других значений в списке. Если отсортировать список, то ранг числа будет его позицией. Ранг разместим в столбце D ;
  • т.к. массив рангов представляет собой массив порядковых чисел 1, 2, 3, 4, …, то будем интерпретировать их как позиции значения в массиве.
  • с помощью формулы =ИНДЕКС($A$7:$A$13;D7) получим список, отсортированный в случайном порядке (столбец E ).

В случае наличия в массиве случайных чисел повторов функция РАНГ() вернет для этих величин одно и тоже значение ранга, что приведет к ошибке сортировки. К счастью, эта вероятность крайне мала: для исходного массива, состоящего из 100 элементов, вероятность повтора будет порядка 1,0Е-13 (10 в минус 13 степени). Для визуального контроля повторов можно использовать Условное форматирование (выделить требуемый диапазон, создать правило Условного форматирования Главная/ Стили/ Условное форматирование/ Правила выделения ячеек/ Повторяющиеся значения... ).


Комментарии

Только для авторизованных пользователей

(только для авторизованных пользователей)

© Copyright 2013 - 2024 Excel2.ru. All Rights Reserved