Для генерирования случайных, вернее псевдослучайных, величин в Excel предусмотрены функции: СЛЧИСЛ (RAND) и СЛУЧМЕЖДУ (RANDBETWEEN). Первая будет возвращать равномерно распределенное случайное вещественное число в диапазоне от 0 до 1, а вторая будет возвращать случайное целое число, которое находится в указанных границах.
Смотрите также видеоверсию статьи «Как генерировать случайные величины».
Сегодня мы поговорим о не стандартном применении функции СЛУЧМЕЖДУ, однако, сначала простой пример работы данной функции.
Простой пример работы функции СЛУЧМЕЖДУ
Для создания 10 случайных чисел от 1 до 10, нужно ввести эти значения в аргументы функции:
=СЛУЧМЕЖДУ(1;10)
![image Простой пример генерирования случайных величин функцией СЛУЧМЕЖДУ](https://i0.wp.com/msoffice-prowork.com/wp-content/uploads/2017/05/image-3.png?resize=589%2C462&ssl=1)
Генерация случайных дат
С помощью данной функции не обязательно генерировать только простые числа, можно создавать и случайные даты. Начальную и конечную даты можно ввести непосредственно в аргументы функции, используя функцию ДАТА (DATE):
=СЛУЧМЕЖДУ(ДАТА(2017;05;01);ДАТА(2017;05;31))
а можно использовать ссылки на ячейки, в этом случае, отпадает необходимость использовать функцию ДАТА:
=СЛУЧМЕЖДУ($D$2;$D$3)
![image Функциея СЛУЧМЕЖДУ для генерирования дат](https://i0.wp.com/msoffice-prowork.com/wp-content/uploads/2017/05/image-4.png?resize=696%2C367&ssl=1)
Из курса Excel нам известно, что дата – это, по сути, специальное представление числового типа данных, поэтому в таком использовании нет ничего необычного, более того, для генерации случайной даты достаточно вычислить случайные значения в диапазоне от 42856 (это первое мая 2017 года) до 42886 (это 31 мая 2017 года), а уже потом к ячейке применить формат «Дата».
![image Функция СЛУЧМЕЖДУ генерирует даты на основе чисел](https://i0.wp.com/msoffice-prowork.com/wp-content/uploads/2017/05/image-5.png?resize=696%2C338&ssl=1)
Если к формуле добавить функцию РАБДЕНЬ (WORKDAY),то можно генерировать даты только среди рабочих дней (по умолчанию исключаются суббота и воскресенье).
![image Пример генерирования дат только рабочих дней](https://i0.wp.com/msoffice-prowork.com/wp-content/uploads/2017/05/image-6.png?resize=696%2C329&ssl=1)
Генерация случайных текстовых значений
Наверное, самый интересный случай применения функции СЛУЧМЕЖДУ. На самом деле, здесь не генерация, а случайный выбор текстовых записей из массива.
Для реализации такой задумки понадобится набор из текстовых записей и функция ВЫБОР (CHOOSE). Данная функция выбирает указанную запись из массива записей, всего одновременно может быть до 254 записей.
Простой пример записи выбора дня недели:
=ВЫБОР(2;"понедельник"; "вторник"; "среда"; "четверг"; "пятница"; "суббота"; "воскресенье")
поскольку введено число 2, то будет выбран вторник, а вот для случайного выбора дня недели, функцию следует совместить с рассматриваемой СЛУЧМЕЖДУ:
=ВЫБОР(СЛУЧМЕЖДУ(1;7);"понедельник"; "вторник"; "среда"; "четверг"; "пятница"; "суббота"; "воскресенье")
лучше, конечно, занести текстовую информацию в ячейки и сделать ссылки уже на сами ячейки.
В завершение остается добавить, что, по умолчанию, функция СЛУЧМЕЖДУ пересчитывается каждый раз, когда вы делаете определенные операции с листом, например, вводите новые данные. Самым простым способом зафиксировать рассчитанные данные – это воспользоваться специальной вставкой (опция «Вставить только значения»).
![image Произвольный выбор текстовых значений с помощью функций ВЫБОР и СЛУЧМЕЖДУ](https://i0.wp.com/msoffice-prowork.com/wp-content/uploads/2017/05/image-7.png?resize=696%2C293&ssl=1)
Другие способы зафиксировать рассчитанные значения описаны здесь.