Перейти к содержимому

11 октября, 2015

Случайные числа без повторений

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.

Задача: вы хотите сгенерировать случайные числа между 1 и 100, но… без дубликатов. Excel стандартно предлагает функции СЛЧИС() и СЛУЧМЕЖДУ(), но обе они, генерируют совершенно случайные числа с морем дубликатов.

Предыстория: подобные задачи я обычно решаю с помощью трех дополнительных столбцов, но PGC01 (это ник участника форума) предложил немаленькую формулу, чтобы справиться с этой проблемой одним махом. Чтобы понять формулу, надо для начала познакомиться с работой функции НАИМЕНЬШИЙ(массив;k). Как правило, она возвращает k-е наименьшее значение массива. Например, =НАИМЕНЬШИЙ({69;9;12;27;42;55};3) возвращает 27, так как, 1-е наименьшее число в списке – 9, 2-е – 12, а 3-е – 27. Нечисловые значения в массиве игнорируются. Например, =НАИМЕНЬШИЙ({69;9;12;ЛОЖЬ;42;55};3) вернет 42.

Решение: сейчас мы разработаем формулу, которая будет формировать массив из неиспользованных чисел диапазона, а затем выбирать из этих чисел (рис. 1).

Рис. 1. Формула генерит наборы чисел, от 1 до 10, упорядоченные случайным образом

Рис. 1. Формула генерит наборы чисел, от 1 до 10, упорядоченные случайным образом

Подробнее »Случайные числа без повторений