Допустим, у вас есть список сотрудников (или продуктов, или виджетов, или чего-то еще) и вы хотите выбрать два элемента из этого списка случайным образом. Существует несколько различных функций рабочего листа, которые вы можете использовать для выбора элементов из списка, например 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 сделает это, очень велика. выше.
Источник: