Генератор случайных чисел в VBA Excel. Функция Rnd, оператор Randomize, функция рабочего листа RandBetween. Синтаксис, параметры, примеры кода.
Rnd – это функция, которая возвращает значение типа Single, содержащее псевдослучайное число меньшее 1, но большее или равное нулю.
Псевдослучайное число отличается от случайного тем, что оно получено с помощью алгоритма, который, в любом случае, подчиняется какой-либо закономерности. Для решения большинства, а возможно и всех, задач в VBA Excel псевдослучайное число можно считать случайным.
Синтаксис
Rnd[(Число)]
Число – необязательный параметр, определяющий алгоритм вычисления псевдослучайного числа. Зависимость случайного числа от этого параметра:
Число | Возвращаемое значение |
---|---|
Меньше нуля | Одно и то же псевдослучайное число каждый раз, как результат использования параметра Число в качестве начального значения для алгоритма |
Больше нуля | Каждое следующее число в псевдослучайном порядке |
Равно нулю | Самое последнее псевдослучайное число, созданное функцией Rnd |
По умолчанию | Каждое следующее число в псевдослучайном порядке |
Для любого параметра Число создается одна и та же последовательность чисел, так как каждый последующий вызов функции Rnd использует предыдущее значение в качестве начального для следующего псевдослучайного числа в последовательности.
Функция Rnd – это и есть простейший генератор случайных чисел в VBA Excel, возвращающий значения в интервале 0<=Rnd<1.
Чтобы повысить «случайность» псевдослучайных чисел, возвращаемых функцией Rnd, используется оператор Randomize.
Оператор Randomize
Randomize – это оператор, который инициализирует генератор случайных чисел функции Rnd, задавая начальное число для генерации первого псевдослучайного числа.
Синтаксис
Randomize[Число]
Число – необязательный параметр, задающий начальное число для генерации. Если параметр Число опущен, используется значение, возвращенное системным таймером.
При повторном использовании в VBA Excel оператора Randomize с тем же значением аргумента Число предыдущая последовательность не повторяется.
Для повторения предыдущей последовательности случайных чисел необходимо непосредственно перед оператором Randomize с тем же значением аргумента Число вызвать функцию Rnd с отрицательным аргументом.
WorksheetFunction.RandBetween
RandBetween – функция рабочего листа, возвращающая целое случайное число в пределах заданного диапазона значений.
Синтаксис
WorksheetFunction.RandBetween(Arg1, Arg2)
- Arg1 – наименьшее целое число, которое возвращает функция рабочего листа RandBetween (обязательный параметр);
- Arg2 – наибольшее целое число, которое возвращает функция рабочего листа RandBetween (обязательный параметр).
Примеры записи строк с WorksheetFunction.RandBetween в VBA Excel (присвоение случайного числа переменной):
a = WorksheetFunction.RandBetween(—65, —15) a = WorksheetFunction.RandBetween(5, 145) |
Если данную функцию вставить в ячейку рабочего листа, например: =СЛУЧМЕЖДУ(25;55)
, случайное число будет обновляться при каждом пересчете листа.
Примеры с Rnd и Randomize
Пример 1
Запускаем генератор случайных чисел функции Rnd с разными параметрами и выводим результаты на рабочий лист Excel:
Sub Primer1() Dim i As Byte Cells(1, 1) = «Rnd(-5)» For i = 2 To 5 Cells(i, 1) = Rnd(—5) Next Cells(1, 2) = «Rnd(3)» For i = 2 To 5 Cells(i, 2) = Rnd(3) Next Cells(1, 3) = «Rnd(0)» For i = 2 To 5 Cells(i, 3) = Rnd(0) Next End Sub |
Получаем следующий результат:
Пример 2
Повторное использование оператора Randomize с тем же значением аргумента Число:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Sub Primer2() Dim i As Byte Cells(1, 1) = «Последовательность 1» Rnd (—1) Randomize 4 For i = 2 To 5 Cells(i, 1) = Rnd Next Cells(1, 2) = «Последовательность 2» Randomize 4 For i = 2 To 5 Cells(i, 2) = Rnd Next Cells(1, 3) = «Последовательность 3» Rnd (—1) Randomize 4 For i = 2 To 5 Cells(i, 3) = Rnd Next End Sub |
Строка кода Rnd (-1)
обеспечивает генерацию последовательности случайных чисел сначала при повторных использованиях оператора Randomize.
Строка кода Randomize 4
перед заполнением второго столбца не влияет на работу функции Rnd, а заполнение последовательности для третьего столбца начинается заново благодаря строке Rnd (-1)
перед оператором Randomize.
Пример 3
Создание генераторов случайных чисел для разных диапазонов. Исходим из того, что функция Rnd генерирует псевдослучайную последовательность из чисел меньше 1, но больше или равным 0.
Примеры с положительными случайными числами:
‘От 0 (включительно) до 10 10 * Rnd ‘От 6 (включительно) до 7 Rnd + 6 ‘От 5 (включительно) до 10 5 * Rnd + 5 |
Примеры с отрицательными случайными числами:
‘От -10 до 0 (включительно) —10 * Rnd ‘От -10 до 10 (включительно) —20 * Rnd + 10 ‘От -10 до -5 (включительно) —(5 * Rnd + 5) |
Пример заполнения ячеек положительными и отрицательными случайными числами на листе Excel:
Sub Primer3() Dim i As Byte Cells(1, 1) = «От 1 до 3» For i = 2 To 9 Cells(i, 1) = 2 * Rnd + 1 Next Cells(1, 2) = «От -5 до 5» For i = 2 To 9 Cells(i, 2) = —10 * Rnd + 5 Next Cells(1, 3) = «От -5 до -2» For i = 2 To 9 Cells(i, 3) = —3 * Rnd — 2 Next End Sub |
Результат выполнения кода VBA Excel третьего примера:
В этом учебном материале вы узнаете, как использовать Excel функцию RND с синтаксисом и примерами.
Описание
Microsoft Excel функция RND возвращает случайное число, которое больше или равно 0 и меньше 1. Вы можете использовать функцию RND в формуле для генерации случайного числа в диапазоне значений.
Функция RND — это встроенная функция Excel, относящаяся к категории математических / тригонометрических функций. Её можно использовать как функцию VBA в Excel.
В качестве функции VBA вы можете использовать эту функцию в коде макроса, который вводится через редактор Microsoft Visual Basic Editor.
Синтаксис
Синтаксис функции RND в Microsoft Excel:
Rnd ( [number] )
Аргументы или параметры
- number
- Необязательно. Он указывает, какое случайное число нужно вернуть (см. Возвращаемое значение ниже).
Возвращаемое значение
Функция RND возвращает случайное число, которое больше или равно 0 и меньше 1. Если предоставленное number
больше 0 или параметр number
опущен, функция RND вернет следующее случайное число в последовательности с использованием ранее сгенерированного случайного числа в качестве начального числа. Если number
меньше 0, функция RND вернет случайное число, используя number
в качестве начального числа. Если number
равно 0, функция RND вернет случайное число, которое было создано последним.
Случайный целочисленный диапазон
Чтобы создать случайное целое число между двумя значениями (диапазоном), вы можете использовать следующую формулу:
Int ((upperbound — lowerbound + 1) * Rnd + lowerbound) |
Где lowerbound — это наименьшее число, а upperbound — наибольшее число, для которого вы хотите создать случайное число.
Int ((25—10+1) * Rnd + 10) |
Приведенная выше формула сгенерирует целое случайное число от 10 до 25.
Применение
- Excel для Office 365, Excel 2019, Excel 2016, Excel 2013, Excel 2011 для Mac, Excel 2010, Excel 2007, Excel 2003, Excel XP, Excel 2000
Тип функции
- Функция VBA
Пример (как функция VBA)
Функцию RND можно использовать только в коде VBA в Microsoft Excel.
Давайте взглянем на некоторые примеры Excel функции RND, чтобы понять, как использовать Excel функцию RND в коде Excel VBA:
Int ((6 — 1 + 1) * Rnd + 1) Результат: случайное число между 1 и 6 Int ((200 — 150 + 1) * Rnd + 150) Результат: случайное число между 150 и 200 Int ((999 — 100 + 1) * Rnd + 100) Результат: случайное число между 100 и 999 |
Например:
Dim LRandomNumber As Integer LRandomNumber = Int ((300 — 200 + 1) * Rnd + 200) |
В этом примере переменная с именем LRandomNumber теперь будет содержать случайное число от 200 до 300.
Добавить функцию Randomize
Если вы обнаружите, что вы не получаете действительно случайное число при вызове функции RND, вы можете использовать функцию RANDOMIZE, чтобы изменить начальное значение для генератора случайных чисел функции RND. Вызов функции RANDOMIZE должен предшествовать вызову функции RND. Например,
Sub Macro1 Dim LRandomNumber As Integer Randomize LRandomNumber = Int ((300 — 200 + 1) * Rnd + 200) End Sub |
В этом примере переменная с именем LRandomNumber теперь будет содержать случайное число от 200 до 300.
Функция Randomize будет гарантировать, что сгенерированное число действительно случайное, путем инициализации генератора случайных чисел начальным значением, которое эквивалентно системному таймеру.
Предупреждение: Если вы не вызываете функцию Randomize перед вызовом функции Rnd, функция Rnd может каждый раз возвращать одно и то же значение случайного числа. И поэтому вы не можете получить действительно случайное число.
У нас есть последовательность чисел, состоящая из практически независимых элементов, которые подчиняются заданному распределению. Как правило, равномерному распределению.
Сгенерировать случайные числа в Excel можно разными путями и способами. Рассмотрим только лучше из них.
Функция случайного числа в Excel
- Функция СЛЧИС возвращает случайное равномерно распределенное вещественное число. Оно будет меньше 1, больше или равно 0.
- Функция СЛУЧМЕЖДУ возвращает случайное целое число.
Рассмотрим их использование на примерах.
Выборка случайных чисел с помощью СЛЧИС
Данная функция аргументов не требует (СЛЧИС()).
Чтобы сгенерировать случайное вещественное число в диапазоне от 1 до 5, например, применяем следующую формулу: =СЛЧИС()*(5-1)+1.
Возвращаемое случайное число распределено равномерно на интервале [1,10].
При каждом вычислении листа или при изменении значения в любой ячейке листа возвращается новое случайное число. Если нужно сохранить сгенерированную совокупность, можно заменить формулу на ее значение.
- Щелкаем по ячейке со случайным числом.
- В строке формул выделяем формулу.
- Нажимаем F9. И ВВОД.
Проверим равномерность распределения случайных чисел из первой выборки с помощью гистограммы распределения.
- Сформируем «карманы». Диапазоны, в пределах которых будут находиться значения. Первый такой диапазон – 0-0,1. Для следующих – формула =C2+$C$2.
- Определим частоту для случайных чисел в каждом диапазоне. Используем формулу массива {=ЧАСТОТА(A2:A201;C2:C11)}.
- Сформируем диапазоны с помощью знака «сцепления» (=»[0,0-«&C2&»]»).
- Строим гистограмму распределения 200 значений, полученных с помощью функции СЛЧИС ().
Диапазон вертикальных значений – частота. Горизонтальных – «карманы».
Функция СЛУЧМЕЖДУ
Синтаксис функции СЛУЧМЕЖДУ – (нижняя граница; верхняя граница). Первый аргумент должен быть меньше второго. В противном случае функция выдаст ошибку. Предполагается, что границы – целые числа. Дробную часть формула отбрасывает.
Пример использования функции:
Случайные числа с точностью 0,1 и 0,01:
Как сделать генератор случайных чисел в Excel
Сделаем генератор случайных чисел с генерацией значения из определенного диапазона. Используем формулу вида: =ИНДЕКС(A1:A10;ЦЕЛОЕ(СЛЧИС()*10)+1).
Сделаем генератор случайных чисел в диапазоне от 0 до 100 с шагом 10.
Из списка текстовых значений нужно выбрать 2 случайных. С помощью функции СЛЧИС сопоставим текстовые значения в диапазоне А1:А7 со случайными числами.
Воспользуемся функцией ИНДЕКС для выбора двух случайных текстовых значений из исходного списка.
Чтобы выбрать одно случайное значение из списка, применим такую формулу: =ИНДЕКС(A1:A7;СЛУЧМЕЖДУ(1;СЧЁТЗ(A1:A7))).
Генератор случайных чисел нормального распределения
Функции СЛЧИС и СЛУЧМЕЖДУ выдают случайные числа с единым распределением. Любое значение с одинаковой долей вероятности может попасть в нижнюю границу запрашиваемого диапазона и в верхнюю. Получается огромный разброс от целевого значения.
Нормальное распределение подразумевает близкое положение большей части сгенерированных чисел к целевому. Подкорректируем формулу СЛУЧМЕЖДУ и создадим массив данных с нормальным распределением.
Себестоимость товара Х – 100 рублей. Вся произведенная партия подчиняется нормальному распределению. Случайная переменная тоже подчиняется нормальному распределению вероятностей.
При таких условиях среднее значение диапазона – 100 рублей. Сгенерируем массив и построим график с нормальным распределением при стандартном отклонении 1,5 рубля.
Используем функцию: =НОРМОБР(СЛЧИС();100;1,5).
Программа Excel посчитала, какие значения находятся в диапазоне вероятностей. Так как вероятность производства товара с себестоимостью 100 рублей максимальная, формула показывает значения близкие к 100 чаще, чем остальные.
Перейдем к построению графика. Сначала нужно составить таблицу с категориями. Для этого разобьем массив на периоды:
- Определим минимальное и максимальное значение в диапазоне с помощью функций МИН и МАКС.
- Укажем величину каждого периода либо шаг. В нашем примере – 1.
- Количество категорий – 10.
- Нижняя граница таблицы с категориями – округленное вниз ближайшее кратное число. В ячейку Н1 вводим формулу =ОКРВНИЗ(E1;E5).
- В ячейке Н2 и последующих формула будет выглядеть следующим образом: =ЕСЛИ(G2;H1+$E$5;»»). То есть каждое последующее значение будет увеличено на величину шага.
- Посчитаем количество переменных в заданном промежутке. Используем функцию ЧАСТОТА. Формула будет выглядеть так:
На основе полученных данных сможем сформировать диаграмму с нормальным распределением. Ось значений – число переменных в промежутке, ось категорий – периоды.
График с нормальным распределением готов. Как и должно быть, по форме он напоминает колокол.
Сделать то же самое можно гораздо проще. С помощью пакета «Анализ данных». Выбираем «Генерацию случайных чисел».
О том как подключить стандартную настройку «Анализ данных» читайте здесь.
Заполняем параметры для генерации. Распределение – «нормальное».
Жмем ОК. Получаем набор случайных чисел. Снова вызываем инструмент «Анализ данных». Выбираем «Гистограмма». Настраиваем параметры. Обязательно ставим галочку «Вывод графика».
Получаем результат:
Скачать генератор случайных чисел в Excel
График с нормальным распределением в Excel построен.
Содержание
- Функции
- Специальный инструмент
- Функция случайного числа в Excel
- Выборка случайных чисел с помощью СЛЧИС
- Как сделать генератор чисел в экселе. Генератор случайных чисел в Excel
- Случайное число в определенном диапазоне. Функция
- Случайное число с определенным шагом
- Как применять рандом для проверки модели?
- Случайное число в VBA
- Использование функции СЛУЧМЕЖДУ
- Генератор случайных чисел в Excel в диапазоне с помощью функции СЛУЧМЕЖДУ
- Генератор случайных чисел в Excel – Генерация случайных чисел в заданном диапазоне
- Создание случайных чисел с заданным количеством знаков после запятой
- Генератор случайных чисел в Excel – Генерация случайных чисел с одним знаком после запятой
- Как предотвратить повторное вычисление СЛЧИС и СЛУЧМЕЖДУ
- Описание функции
- Пример 1
- Способ простой
- Способ сложный
Функции
Excel содержит две функции, которые позволяют генерировать произвольные цифры –СЛЧИС и СЛУЧМЕЖДУ. Рассмотрим каждую из них более подробно.
Функция СЛЧИС не имеет аргументов, поэтому просто вписываете ее в строку формул и нажимаете Enter.
При помощи маркера автозаполнения можно применить формулу к нужному количеству ячеек.
Важно! При любом действии с ячейкой число автоматически изменяется. Чтобы его зафиксировать, необходимо поставить курсор в нужную ячейку, выделить выражение в строке формул и нажать клавишу F9.
Особенностью этой функции является то, что она работает в пределах от нуля включительно до единицы с нормальным распределением.
Чтобы сгенерировать цифры в заданном диапазоне, например от 3 до 8, необходимо дополнять формулу.
Чтобы сгенерировать случайное целое число, отлично подойдет функция СЛУЧМЕЖДУ. Где в качестве аргументов выступают два числа – верхняя и нижняя границы. При этом существует несколько особенностей:
- Первая часть формулы должна быть меньше второй.
- Границы должны быть целыми числами.
- Цифры после запятой отбрасываются.
Если умножить формулу на определенный коэффициент, то можно создать случайное дробное число с десятыми, сотыми, тысячными и так далее.
В качестве бонуса рассмотрим, как использовать excel для лотереи. Для начала нужно выгрузить базу данных участников в программу любым известным способом, а затем провести розыгрыш. Формула будет выглядеть следующим образом:
Специальный инструмент
Генератор случайных чисел можно найти в пакете анализа данных, который активируется через надстройки Excel. Чтобы воспользоваться этой функцией, необходимо нажать отдельную кнопку во вкладке Данные на Панели инструментов и из списка выбрать нужную строку.
Откроется окно настроек, в котором задаете число переменных и количество случайных чисел, затем указываете дополнительные параметры и место вывода полученных данных. Для примера используем нормальное распределение, которое можно выбрать из отдельного списка.
В результате получилось следующее:
Этот метод намного проще, чем описанные выше способы. Однако он не позволяет накладывать дополнительные условия, поэтому генерация не всегда может удовлетворять требованиям пользователя.
Как видите, в редакторе существует несколько способов задания произвольного числа. Если нужны какие-то ограничения, то используйте встроенные функции, а если важно наличие случайного значения, то генератор из анализа данных подойдет лучше.
- Функция СЛЧИС возвращает случайное равномерно распределенное вещественное число. Оно будет меньше 1, больше или равно 0.
- Функция СЛУЧМЕЖДУ возвращает случайное целое число.
Выборка случайных чисел с помощью СЛЧИС
Данная функция аргументов не требует (СЛЧИС()).
Чтобы сгенерировать случайное вещественное число в диапазоне от 1 до 5, например, применяем следующую формулу: =СЛЧИС()*(5-1)+1.
Возвращаемое случайное число распределено равномерно на интервале [1,10].
При каждом вычислении листа или при изменении значения в любой ячейке листа возвращается новое случайное число. Если нужно сохранить сгенерированную совокупность, можно заменить формулу на ее значение.
- Щелкаем по ячейке со случайным числом.
- В строке формул выделяем формулу.
- Нажимаем F9. И ВВОД.
Проверим равномерность распределения случайных чисел из первой выборки с помощью гистограммы распределения.
- Сформируем «карманы». Диапазоны, в пределах которых будут находиться значения. Первый такой диапазон – 0-0,1. Для следующих – формула =C2+$C$2.
- Определим частоту для случайных чисел в каждом диапазоне. Используем формулу массива {=ЧАСТОТА(A2:A201;C2:C11)}.
- Сформируем диапазоны с помощью знака «сцепления» (=”[0,0-“&C2&”]”).
- Строим гистограмму распределения 200 значений, полученных с помощью функции СЛЧИС ().
Диапазон вертикальных значений – частота. Горизонтальных – «карманы».
Как сделать генератор чисел в экселе. Генератор случайных чисел в Excel
В Excel есть функция нахождения случайных чисел =СЛЧИС(). Возможность же найти случайное число в Excel, важная составляющая планирования или анализа, т.к. вы можете спрогнозировать результаты вашей модели на большом количестве данных или просто найти одно рандомное число для проверки своей формулы или опыта.
Чаще всего эта функция применяется для получения большого количества случайных чисел. Т.е. 2-3 числа всегда можно придумать самому, для большого количества проще всего применить функцию.
В большинстве языков программирования подобная функция известная как Random (от англ. случайный), поэтому часто можно встретить обрусевшее выражение «в рандомном порядке» и т.п.
В английском Excel функция СЛЧИС числится как RAND
Начнем с описания функции =СЛЧИС(). Для этой функции не нужны аргументы.
А работает она следующим образом — выводит случайное число от 0 до 1. Число будет вещественное, т.е. по большому счету любое, как правило это десятичные дроби, например 0,0006.
При каждом сохранении число будет меняться, чтобы обновить число без обновления нажмите F9.
Случайное число в определенном диапазоне. Функция
Что делать если вам не подходит имеющийся диапазон случайных чисел, и нужно набор случайных чисел от 20 до 135. Как это можно сделать?
Нужно записать следующую формулу.
СЛЧИС()*115+20
Т.е. к 20 будет случайным образом прибавляться число от 0 до 115, что позволит получать каждый раз число в нужном диапазоне (см. первую картинку).
- Кстати, если вам необходимо найти целое число в таком же диапазоне, для этого существует специальная функция, где мы указываем верхнюю и нижнюю границу значений
- СЛУЧМЕЖДУ(20;135)
- Просто, но очень удобно!
- Если нужно множество ячеек случайных чисел просто протяните ячейку ниже.
Случайное число с определенным шагом
Если нам нужно получить рандомное число с шагом, к примеру пять, то мы воспользуемся одной из . Это будет ОКРВВЕРХ()
ОКРВВЕРХ(СЛЧИС()*50;5)
Где мы находим случайное число от 0 до 50, а затем округляем его до ближайшего сверху значения кратного 5. Удобно, когда вы делаете расчет для комплектов по 5 штук.
Как применять рандом для проверки модели?
Проверить придуманную модель можно при помощи большого количества случайных чисел. Например проверить будет ли прибыльным бизнес-план.
Случайное число в VBA
Если вам необходим записать макрос и вы не знаете как это сделать, то можно прочитать .
В VBA применяется функция Rnd(), при этом она не будет работать без включения команды Randomize для запуска генератора случайных чисел. Рассчитаем случайное число от 20 до 135 макросом.
- Sub MacroRand() Randomize Range(«A24») = Rnd * 115 + 20 End Sub
- Вставьте этот код в редактор VBA (Alt + F11)
- Как и всегда, прикладываю пример* со всеми вариантами расчета.
- Пишите комментарии, если у вас есть вопросы!
Случайные числа часто бывают полезны в электронных таблицах. Например, вы можете заполнить диапазон случайными числами для тестирования формул или сгенерировать случайные числа для симуляции самых разных процессов. Excel предоставляет несколько способов для генерации случайных чисел.
Использование функции СЛУЧМЕЖДУ
Для генерации равномерных случайных чисел между любыми двумя числами вы можете использовать функцию СЛУЧМЕЖДУ
. Следующая формула, например, генерирует случайное число между 100 и 200: =СЛУЧМЕЖДУ(100;200) .
В версиях, предшествующих Excel 2007, функция СЛУЧМЕЖДУ
доступна только при установке дополнительного пакета анализа.
Для совместимости с предыдущими версиями (и чтобы избежать использования этой надстройки) используйте такую формулу, где а
представляет нижний, a b — верхний предел: =СЛЧИС()*(b-а)+а.
Чтобы сгенерировать случайное число между 40 и 50, используйте следующую формулу: =СЛЧИС()*(50-40)+40 .
Генератор случайных чисел в Excel в диапазоне с помощью функции СЛУЧМЕЖДУ
СЛУЧМЕЖДУ – это еще одна функция в Excel для создания генератора случайных чисел.. Она возвращает случайные целые числа в указанном диапазоне:
СЛУЧМЕЖДУ (нижняя граница; верхняя граница)
Очевидно, что нижняя граница – это наименьшее число, а верхняя граница – наибольшее число в диапазоне случайных чисел, которые вы хотите получить.
Подобно СЛЧИС, СЛУЧМЕЖДУ в Excel является изменчивой функцией, и она также возвращает новое случайное целое число каждый раз, когда ваша таблица пересчитывается или изменяется.
Например, того чтобы сделать генератор случайных целых чисел от 10 до 50 (включая 10 и 50) используйте следующую формулу СЛУЧМЕЖДУ:
= СЛУЧМЕЖДУ(10; 50)
Генератор случайных чисел в Excel – Генерация случайных чисел в заданном диапазоне
Функция СЛУЧМЕЖДУ в Excel может создавать как положительные, так и отрицательные числа случайные числа. Например, чтобы получить список случайных чисел от -10 до 10, введите следующую формулу на листе:
=СЛУЧМЕЖДУ(-10;10)
Функция СЛУЧМЕЖДУ доступна в следующих версиях: Excel 2016, Excel 2013, Excel 2010 и Excel 2007.
В более ранней версии Excel 2003, вы можете использовать формулу СЛЧИС, рассмотренную выше.
Далее в этой статье вы найдете еще несколько примеров формул, демонстрирующих, как использовать функцию СЛУЧМЕЖДУ для создания генератора случайных чисел, отличных от целых.
Создание случайных чисел с заданным количеством знаков после запятой
Хотя функция СЛУЧМЕЖДУ в Excel была предназначена для генерации случайных целых чисел, вы можете использовать ее для генерации случайных десятичных чисел с таким количеством десятичных знаков, сколько хотите.
Например, чтобы получить список чисел с одним десятичным знаком, вы умножаете нижнее и верхнее значения на 10, а затем делите возвращаемое значение на 10:
= СЛУЧМЕЖДУ(нижняя граница*10; верхняя граница*10)/10
Например, чтобы получить список чисел с одним десятичным знаком, вы умножаете нижнее и верхнее значения на 10, а затем делите возвращаемое значение на 10:
Следующая формула СЛУЧМЕЖДУ возвращает случайные десятичные числа от 1 до 50:
= СЛУЧМЕЖДУ(1*10;50*10)/10
Генератор случайных чисел в Excel – Генерация случайных чисел с одним знаком после запятой
Аналогичным образом, чтобы сделать генератор случайных чисел от 1 до 50 с двумя знаками после запятой, вы умножаете аргументы функции СЛУЧМЕЖДУ на 100, а затем делите результат на 100:
=СЛУЧМЕЖДУ(1*100; 50*100)/100
Как предотвратить повторное вычисление СЛЧИС и СЛУЧМЕЖДУ
Если вы хотите получить постоянный набор случайных чисел, дат или текстовых строк, которые не будут меняться каждый раз, то есть зафиксировать случайные числа, когда лист пересчитывается, используйте один из следующих способов:
- Чтобы остановить функции СЛЧИС или СЛУЧМЕЖДУ от пересчета в одной ячейке, выберите эту ячейку, переключитесь на панель формул и нажмите F9, чтобы заменить формулу на ее значение.
- Чтобы предотвратить функцию случайных чисел в Excel от автоматического обновления значений в нескольких ячейках, используйте функцию Вставить. Выберите все ячейки с формулой генерации случайных значений, нажмите Ctrl+C, чтобы скопировать их, затем щелкните правой кнопкой мыши выбранный диапазон и нажмите «Вставить специальные»–> «Значения».
Описание функции
В Excel имеется функция СЛУЧМЕЖДУ, она возвращает случайное число в заданных границах. Единственный ее минус в том, что она постоянно пересчитывается, даже при вводе значений, никак не связанных с формулой. Все прекрасно работает если у вас немного вычислений и мощный компьютер. Однако постоянный пересчет формулы иногда снижает продуктивность, приходится ждать когда все вычисления выполнятся. Поэтому в надстройку добавили аналогичную функцию, но которая не пересчитывается постоянно.
Функция =СЛУЧМЕЖДУСТАТ(Нижн_граница; Верхн_граница) имеет два аргумента:
- – Нижн_граница – Нижнее (минимальное) значение диапазона. По умолчанию данный аргумент равен 0.
- – Верхн_граница – Верхнее (максимальное) значение диапазона. По умолчанию данный аргумент равен 1.
Данная функция пересчитывается в следующих случаях:
- Когда вы повторно вводите функцию;
- Когда вы изменяете значения какого-либо аргумента;
- Когда вы выполняете пересчет книги или листа.
Пример 1
Заполнение диапазона случайными значениями от 1 до 1000.
Способ простой
Для начала рассмотрим простой вариант: нам необходимо получить случайный набор из 10 целых чисел от 1 до 10. Использование встроенной в Excel функции СЛУЧМЕЖДУ (RANDBETWEEN) уникальности не гарантирует. Если ввести ее в ячейку листа и скопировать вниз на 10 ячеек, то запросто могут случиться повторы:
Поэтому мы пойдем другим путем.
Во всех версиях Excel есть функция РАНГ (RANG), предназначенная для ранжирования или, другими словами, определения топовой позиции числа в наборе. Для самого большого числа в списке ранг=1, второе в топе имеет ранг=2 и т.д.
Введем в ячейку А2 функцию СЛЧИС (RAND) без аргументов и скопируем формулу вниз на 10 ячеек. Эта функция сгенерирует нам набор из 10 случайных дробных чисел от 0 до 1:
В соседний столбец введем функцию РАНГ, чтобы определить позицию в рейтинге для каждого полученного случайного числа:
Получим в столбце В то, что хотели – любое нужное количество неповторяющихся случайных целых чисел от 1 до 10.
Чисто теоретически, может возникнуть ситуация, когда СЛЧИС выдаст нам два одинаковых случайных числа в столбце А, их ранги совпадут и мы получим повтор в столбце В. Однако, вероятность такого сценария крайне мала, учитывая тот факт, что точность составляет 15 знаков после запятой.
Способ сложный
Этот способ чуть сложнее, но использует всего одну формулу массива. Допустим, нам нужно создать на листе список из 9 неповторяющихся случайных целых чисел в интервале от 1 до 50.
Введите в ячейку А2 следующую формулу, нажмите в конце Ctrl+Shift+Enter (чтобы ввести ее как формулу массива!) и скопируйте формулу вниз на требуемое количество ячеек:
Источники
- https://mir-tehnologiy.ru/sluchajnoe-chislo-v-excel-kak-sgenerirovat-primery/
- https://exceltable.com/funkcii-excel/generator-sluchaynyh-chisel
- https://iiorao.ru/prochee/kak-sdelat-random-v-excel.html
- https://naprimerax.org/posts/63/generator-sluchainykh-chisel-v-excel
- https://micro-solution.ru/projects/addin_vba-excel/rnd_between_static
- https://www.planetaexcel.ru/techniques/14/230/
This Excel tutorial explains how to use the Excel RND function with syntax and examples.
Description
The Microsoft Excel RND function returns a random number that is greater than or equal to 0 and less than 1. You can use the RND function in a formula to generate a random number within a range of values.
The RND function is a built-in function in Excel that is categorized as a Math/Trig Function. It can be used as a VBA function (VBA) in Excel. As a VBA function, you can use this function in macro code that is entered through the Microsoft Visual Basic Editor.
Syntax
The syntax for the RND function in Microsoft Excel is:
Rnd ( [number] )
Parameters or Arguments
- number
- Optional. It specifies what random number to return (see return values below).
Returns
The RND function returns a random number that is greater than or equal to 0 and less than 1.
If the number provided is greater than 0 or the number parameter is omitted, the RND function will return the next random number in the sequence using the previously generated random number as the seed.
If the number is less than 0, the RND function will return a random number using number as the seed.
If the number is 0, the RND function will return the random number that was most recently generated.
Random Integer Range
To create a random integer number between two values (range), you can use the following formula:
Int ((upperbound - lowerbound + 1) * Rnd + lowerbound)
Where lowerbound is the smallest number and upperbound is the largest number that you want to generate a random number for.
Int ((25-10+1) * Rnd + 10)
The formula above would generate an integer random number between 10 and 25.
Applies To
- Excel for Office 365, Excel 2019, Excel 2016, Excel 2013, Excel 2011 for Mac, Excel 2010, Excel 2007, Excel 2003, Excel XP, Excel 2000
Type of Function
- VBA function (VBA)
Example (as VBA Function)
The RND function can only be used in VBA code in Microsoft Excel.
Let’s look at some Excel RND function examples and explore how to use the RND function in Excel VBA code:
Int ((6 - 1 + 1) * Rnd + 1) Result: random number between 1 and 6 Int ((200 - 150 + 1) * Rnd + 150) Result: random number between 150 and 200 Int ((999 - 100 + 1) * Rnd + 100) Result: random number between 100 and 999
For example:
Dim LRandomNumber As Integer LRandomNumber = Int ((300 - 200 + 1) * Rnd + 200)
In this example, the variable called LRandomNumber would now contain a random number between 200 and 300.
Add the Randomize function
If you find that you are not getting a truly random number when calling the RND function, you can use the RANDOMIZE function to change the seed value for the RND function’s random number generator. The call to the RANDOMIZE function should preceed the call to the RND function.
For example,
'Example provided by techonthenet.com Sub Macro1 Dim LRandomNumber As Integer Randomize LRandomNumber = Int ((300 - 200 + 1) * Rnd + 200) End Sub
In this example, the variable called LRandomNumber would now contain a random number between 200 and 300. The Randomize function would ensure that the number generated is truly random by initializing the random number generator with a seed value that is equivalent to the system timer.
Warning: If you don’t call the Randomize function before calling the Rnd function, the Rnd function may return the same random number value each time. And therefore, you may not get a truly random number.