Как генерировать случайные величины

Для генерирования случайных, вернее псевдослучайных, величин в Excel предусмотрены функции: СЛЧИСЛ (RAND) и СЛУЧМЕЖДУ (RANDBETWEEN). Первая будет возвращать равномерно распределенное случайное вещественное число в диапазоне от 0 до 1, а вторая будет возвращать случайное целое число, которое находится в указанных границах.

Сегодня мы поговорим о не стандартном применении функции СЛУЧМЕЖДУ, однако, сначала простой пример работы данной функции.

Простой пример работы функции СЛУЧМЕЖДУ

Для создания 10 случайных чисел от 1 до 10, нужно ввести эти значения в аргументы функции:

=СЛУЧМЕЖДУ(1;10)
Простой пример генерирования случайных величин функцией СЛУЧМЕЖДУ

Простой пример генерирования случайных величин функцией СЛУЧМЕЖДУ

Генерация случайных дат

С помощью данной функции не обязательно генерировать только простые числа, можно создавать и случайные даты. Начальную и конечную даты можно ввести непосредственно в аргументы функции, используя функцию ДАТА (DATE):

=СЛУЧМЕЖДУ(ДАТА(2017;05;01);ДАТА(2017;05;31))

а можно использовать ссылки на ячейки, в этом случае, отпадает необходимость использовать функцию ДАТА:

=СЛУЧМЕЖДУ($D$2;$D$3)
Функциея СЛУЧМЕЖДУ для генерирования дат

Функциея СЛУЧМЕЖДУ для генерирования дат

Из курса Excel нам известно, что дата – это, по сути, специальное представление числового типа данных, поэтому в  таком использовании нет ничего необычного, более того, для генерации случайной даты достаточно вычислить случайные значения в диапазоне от 42856 (это первое мая 2017 года) до 42886 (это 31 мая 2017 года), а уже потом к ячейке применить формат "Дата".

Функция СЛУЧМЕЖДУ генерирует даты на основе чисел

Функция СЛУЧМЕЖДУ генерирует даты на основе чисел

Если к формуле добавить функцию РАБДЕНЬ (WORKDAY),то можно генерировать даты только среди рабочих дней (по умолчанию исключаются суббота и воскресенье).

Пример генерирования дат только рабочих дней

Пример генерирования дат только рабочих дней

Генерация случайных текстовых значений

Наверное, самый интересный случай применения функции СЛУЧМЕЖДУ. На самом деле, здесь не генерация, а случайный выбор текстовых записей из массива.

Для реализации такой задумки понадобится набор из текстовых записей и функция ВЫБОР (CHOOSE). Данная функция выбирает указанную запись из массива записей, всего одновременно может быть до 254 записей.

Простой пример записи выбора дня недели:

=ВЫБОР(2;"понедельник"; "вторник"; "среда"; "четверг"; "пятница"; "суббота"; "воскресенье")

поскольку введено число 2, то будет выбран вторник, а вот для случайного выбора дня недели, функцию следует совместить с рассматриваемой СЛУЧМЕЖДУ:

=ВЫБОР(СЛУЧМЕЖДУ(1;7);"понедельник"; "вторник"; "среда"; "четверг"; "пятница"; "суббота"; "воскресенье")

лучше, конечно, занести текстовую информацию в ячейки и сделать ссылки уже на сами ячейки.

В завершение остается добавить, что, по умолчанию, функция СЛУЧМЕЖДУ пересчитывается каждый раз, когда вы делаете определенные операции с листом, например, вводите новые данные. Самым простым способом зафиксировать рассчитанные данные – это воспользоваться специальной вставкой (опция "Вставить только значения").

Произвольный выбор текстовых значений с помощью функций ВЫБОР и СЛУЧМЕЖДУ

Произвольный выбор текстовых значений с помощью функций ВЫБОР и СЛУЧМЕЖДУ

Другие способы зафиксировать рассчитанные значения описаны здесь.