Выбор различных случайных чисел из диапазона (Microsoft Excel)
Предположим, у вас есть список сотрудников (или продуктов, или виджетов, или чего-то еще) и вы хотите выбрать два элемента из этого списка случайным образом.
Существует несколько различных функций рабочего листа, которые можно использовать для выбора элементов из списка, например RANDOM и RANDBETWEEN.
Многие люди используют функцию RANDBETWEEN, потому что она очень проста и предоставляет случайное число в пределах диапазона. Таким образом, если в вашем списке 25 элементов, RANDBETWEEN может вернуть число от 1 до 25, которое затем может соответствовать элементам в списке.
Например, предположим, что ваш список элементов находится в диапазоне A2: A26, и что вы дали этому диапазону имя Items. Затем вы можете поместить следующую формулу в ячейку C2, чтобы вернуть число от 1 до количества элементов:
=RANDBETWEEN(1,ROWS(Items))
Скопируйте эту формулу в ячейку C3, и теперь у вас есть два случайных числа, которые представляют элементы из списка. В ячейках D2 и D3 вы можете поместить такие формулы, чтобы получить фактические имена из списка:
=INDEX(Items,C2)
Единственная проблема с этим подходом заключается в том, что оба экземпляра RANDBETWEEN (ячейки C2 и C3) могут возвращать одно и то же значение, и, таким образом, вы получаете один и тот же элемент, дважды выбранный из вашего списка.
Один из способов обойти эту потенциальную проблему — выбрать три элемента из списка вместо двух. Если первые два элемента совпадают, то третий можно использовать как «запасной» элемент, чтобы предоставить уникальный второй. Этот метод не является надежным, поскольку это возможно — но совершенно невероятно — что все три будут одинаковыми.
Другой подход к выбору элементов из списка заключался бы в том, чтобы присвоить каждому элементу свое собственное случайное значение, а затем выбрать его на основе наибольшего числа в серии. Функция RANDOM возвращает случайное значение от 0 до 1. В каждой ячейке столбца B, справа от каждого элемента в столбце A, поместите эту формулу:
=RAND()
Выберите диапазон ячеек (B2: B26) и назовите диапазон, используя такое имя, как ItemNums. Затем вы можете определить первое случайное имя из списка, используя следующую формулу массива:
=OFFSET(A$1,SUM((LARGE(ItemNums,1)=(ItemNums))*ROW(ItemNums))-1,0)
Чтобы обозначить, что это формула массива, введите ее, нажав Shift + Ctrl + Enter. Формула должна возвращать одно имя. Затем вы можете использовать следующую формулу массива, чтобы вернуть второе имя:
=OFFSET(A$1,SUM((LARGE(ItemNums,2)=(ItemNums))*ROW(ItemNums))-1,0)
Причина того, что использование функции RAND работает лучше, чем использование RANDBETWEEN, заключается в том, что вероятность того, что RAND вернет два одинаковых значения, бесконечно мала, тогда как вероятность того, что RANDBETWEEN сделает это, намного выше.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (12082) применим к Microsoft Excel 2007, 2010, 2013 и 2016.
Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:
link: / excel-Picking_Different_Random_Numbers_from_a_Range [Выбор различных случайных чисел из диапазона]
.