Для генерирования случайных, вернее псевдослучайных, величин в 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);"понедельник"; "вторник"; "среда"; "четверг"; "пятница"; "суббота"; "воскресенье")
лучше, конечно, занести текстовую информацию в ячейки и сделать ссылки уже на сами ячейки.
В завершение остается добавить, что, по умолчанию, функция СЛУЧМЕЖДУ пересчитывается каждый раз, когда вы делаете определенные операции с листом, например, вводите новые данные. Самым простым способом зафиксировать рассчитанные данные – это воспользоваться специальной вставкой (опция «Вставить только значения»).
Другие способы зафиксировать рассчитанные значения описаны здесь.