Генерация случайных чисел в Google Таблицах
Функции для генерации случайных чисел
В Google Таблицах есть две функции для генерации случайных чисел.
Это СЛЧИС / RAND и СЛУЧМЕЖДУ / RANDBETWEEN.
Первая генерирует случайное число от 0 до 1, а вторая - целые числа в заданном диапазоне.
Соответственно, у СЛЧИС() аргументов нет - она всегда возвращает число от 0 до 1.
У СЛУЧМЕЖДУ два аргумента - границы, в которых нужно сгенерировать число.
Например, эта функция будет возвращать число от 3 до 27:
=СЛУЧМЕЖДУ(3;27)
Эти функции могут пригодиться для моделирования какой-нибудь ситуации, когда реальных данных. Например, я использовал их при создании некоторых примеров для нашего курса. А также можно использовать их для жеребьевки, например - такой пример рассмотрим чуть ниже.
Важная особенность этих функций - они, как и любые другие, обновляются (пересчитываются) при любых действиях пользователя на листе (изменение, удаление данных). Так что если вы хотите сохранить сгенерированные значения, чтобы они не менялись при каждом действии - воспользуйтесь специальной вставкой, чтобы сохранить их как значения.
Генерация случайной даты и времени
Если вспомнить, что дата и время в Google Таблицах - это числа, то мы поймем, что можем без труда генерировать случайные даты и время.
Напомню, дата - это целое число.
Чтобы конвертировать дату из привычного нам формата в числовой, можно использовать функцию ДАТАЗНАЧ / DATEVALUE.
Так, следующая функция будет возвращать случайные даты в промежутке между 01.01.2018 и 01.01.2019:
=СЛУЧМЕЖДУ(ДАТАЗНАЧ("01.01.2018");ДАТАЗНАЧ("01.01.2019"))
Ну а чтобы сгенерировать случайное время - достаточно воспользоваться СЛЧИС. Ведь она генерирует число от 0 до 1, а время для Google Таблиц и есть число от 0 до 1 (напомню, полдень, например = 0,5).
Соответственно, если хочется сгенерировать случайную дату и случайное время, нужно сложить две функции:
=СЛУЧМЕЖДУ(ДАТАЗНАЧ("01.01.2018");ДАТАЗНАЧ("01.01.2019")) + СЛЧИС()
Генерация случайных комбинаций с помощью ИНДЕКС и СЛУЧМЕЖДУ
Посмотрим, как можно выбрать случайную пару команд из двух разных лиг, чтобы провести жеребьевку кубка.
Задача состоит из двух этапов:
Выбрать случайные числа от 1 до N, где N - количество команд в лиге (функция СЛУЧМЕЖДУ);
Вернуть названия команд, соответствующие этим номерам, из списка (функция ИНДЕКС, которая, как мы помним, возвращает элемент из массива по его номеру).
Формула для одного из клубов будет выглядеть следующим образом:
=ИНДЕКС(список_клубов; СЛУЧМЕЖДУ(1;N))
Можно сформировать названия клубов в отдельных ячейках, как в примере, можно сразу сформировать пару с помощью текстовых функций:
=ИНДЕКС(список_клубов1; СЛУЧМЕЖДУ(1;N))&" : "&ИНДЕКС(список_клубов2; СЛУЧМЕЖДУ(1;M))
Формула, выбирающая случайный клуб из списка в B4:B23
Таким же образом можно генерировать и другие случайные сочетания - от ФИО из набора имен и фамилий до случайных телефонов или электронных адресов