Как сортировать в excel в случайном порядке

Foodband

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

history 19 апреля 2013 г.
    Группы статей

  • Случайные текстовые значения
  • Сортировка Текстовых Значений
  • Условное форматирование

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

Пусть задан диапазон ячеек содержащий текстовые значения ( 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 степени). Для визуального контроля повторов можно использовать Условное форматирование (выделить требуемый диапазон, создать правило Условного форматирования Главная/ Стили/ Условное форматирование/ Правила выделения ячеек/ Повторяющиеся значения. ).

Foodband

Одминский блог

Блог о технологиях, технократии и методиках борьбы с граблями

  • Главная
  • Проект
  • Услуги

Случайная сортировка текстового массива

Возникла тут надобность предоставить клиенту не поименный список, а смешать его для прохождения по нему случайным образом. Данные были представлены в виде тысячи текстовых строк.

Сначала долго думал как сделать случайную сортировку в Notepad++, но смог найти только какое то дикое шаманство с добавлением кавычек в конце строки через плагин TextFX (через который сортировка по алфавиту делается в два клика), поэтому обратился к Microsoft Excel.

алфавитный список в ExcelВ Excel сортировка случайным образом делается через генерацию списка случайных чисел и его последующую сортировку. Случайное число генерится в ячейке через функцию СЛЧИС()

То есть имеем скажем алфавитный список в столбце А, тогда в столбце Б делаем числовой формат и ставим 10 знаков после запятой (для максимальной рандомизации), после чего пишем в первой строчке =СЛЧИС() (в забугорном аналоге это вроде как функция RAND, но могу ошибаться), нажимаем Enter, после чего растягиваем её на весь столбец*.

выборочная сортировка в Excel***Если кто не знает, то при растягивании, функция автоматически дублируется в последующие ячейки (или продолжается ряд, скажем числовой). Для этого надо подвести курсор к нижнему правому углу ячейки, где он превращается в крестик, который зажимаем левой кнопкой мыши и растягиваем в нужно направлении.

В итоге у нас получается числовой столбец заполненный случайными цифрами, после чего мы сортируем книгу или нужные столбцы по нужному (в моем примере B). Делается это через раздел Данные -> Сортировка или, если у вас навигация вытащена в Главное, то Сортировка и фильтр -> Настраиваемая сортировка.

Надо заметить, что на моем списке в тыщу строк, он что то не очень хотел рандомизироваться (случайный порядок выстраивался скорее блоками, чем построчно), поэтому мне пришлось его скопировать в соседний столбец, чтобы он был представлен просто цифрами, а не выводом функции. После этого случайная сортировка сработала и он перемешался уже качественно – уж не знаю це фича или бага.

Foodband

Ссылка на основную публикацию