Функции RAND и RANDBETWEEN для генерации случайных чисел в Excel

  • Поделись Этим
Michael Brown

Оглавление

В учебнике объясняются особенности алгоритма генератора случайных чисел Excel и демонстрируется, как использовать функции RAND и RANDBETWEEN для генерации случайных чисел, дат, паролей и других текстовых строк в Excel.

Прежде чем мы рассмотрим различные методы генерации случайных чисел в Excel, давайте определим, что же это такое. Говоря простым языком, случайные данные - это ряд цифр, букв или других символов, в которых отсутствует какая-либо закономерность.

Случайность имеет множество различных применений в криптографии, статистике, лотерее, азартных играх и многих других областях. И поскольку она всегда была востребована, с древних времен существовали различные методы создания случайных чисел, такие как подбрасывание монет, бросание костей, тасование игральных карт и т.д. Конечно, в этом учебнике мы не будем опираться на такие "экзотические" методы и сосредоточимся на следующемчто может предложить генератор случайных чисел Excel.

    Генератор случайных чисел Excel - основы

    Хотя генератор случайных чисел Excel проходит все стандартные тесты на случайность, он не генерирует правда случайные числа. Но не стоит сразу списывать это со счетов :) Псевдослучайный числа, получаемые с помощью случайных функций Excel, подходят для многих целей.

    Давайте подробнее рассмотрим алгоритм генератора случайных чисел Excel, чтобы вы знали, чего от него можно ожидать, а чего нет.

    Как и большинство компьютерных программ, генератор случайных чисел Excel производит псевдослучайные числа с помощью некоторых математических формул. Для вас это означает, что теоретически случайные числа, генерируемые Excel, предсказуемы при условии, что кто-то знает все детали алгоритма генератора. Именно по этой причине он никогда не был задокументирован и вряд ли когда-нибудь будет. Итак, что мы знаем о генераторе случайных чисел в Excel?

    • Функции Excel RAND и RANDBETWEEN генерируют псевдослучайные числа на основе Униформа распространение Хорошим примером равномерного распределения является бросание кубика. В результате броска кубик принимает шесть возможных значений (1, 2, 3, 4, 5, 6), и каждое из них встречается с одинаковой вероятностью. Более научное объяснение можно найти на сайте wolfram.com.
    • Не существует способа засеять ни Excel RAND, ни функцию RANDBETWEEN, которые, по слухам, инициализируются из системного времени компьютера. Технически, a. семя является отправной точкой для генерации последовательности случайных чисел. И каждый раз, когда вызывается функция Excel random, используется новая затравка, которая возвращает уникальную случайную последовательность. Другими словами, при использовании генератора случайных чисел в Excel вы не сможете получить повторяющуюся последовательность ни с помощью функции RAND или RANDBETWEEN, ни с помощью VBA, ни каким-либо другим способом.
    • В ранних версиях Excel, до Excel 2003, алгоритм генерации случайных чисел имел относительно небольшой период (менее 1 млн. неповторяющихся случайных чисел) и не прошел несколько стандартных тестов на случайность на длинных случайных последовательностях. Поэтому, если кто-то все еще работает со старой версией Excel, лучше не использовать функцию RAND с большими имитационными моделями.

    Если вы ищете правда случайных данных, вы, вероятно, можете использовать сторонний генератор случайных чисел, такой как www.random.org, случайность которого происходит от атмосферного шума. Они предлагают бесплатные услуги по генерации случайных чисел, игр и лотерей, цветовых кодов, случайных имен, паролей, буквенно-цифровых строк и других случайных данных.

    Итак, это довольно длинное техническое введение заканчивается, и мы переходим к практическим и более полезным вещам.

    Функция Excel RAND - генерация случайных вещественных чисел

    Сайт RAND функция в Excel является одной из двух функций, специально предназначенных для генерации случайных чисел. Она возвращает случайное десятичное число (действительное число) в диапазоне от 0 до 1.

    RAND() - это непостоянная функция, то есть при каждом вычислении генерируется новое случайное число, и это происходит каждый раз, когда вы выполняете какое-либо действие на рабочем листе, например, обновляете формулу (не обязательно формулу RAND, просто любую другую формулу на листе), редактируете ячейку или вводите новые данные.

    Функция RAND доступна во всех версиях Excel 365 - 2000.

    Поскольку функция Excel RAND не имеет аргументов, вы просто вводите =RAND() в ячейке, а затем скопируйте формулу в любое количество ячеек:

    А теперь давайте сделаем еще один шаг вперед и напишем несколько формул RAND для генерации случайных чисел в соответствии с вашими условиями.

    Формула 1. Укажите значение верхней границы диапазона

    Для генерации случайных чисел от нуля до любого N значение, вы умножаете функцию RAND на N:

    RAND()* N

    Например, чтобы создать последовательность случайных чисел больше или равных 0, но меньше 50, используйте следующую формулу:

    =RAND()*50

    Примечание. Верхнее граничное значение никогда не включается в возвращаемую случайную последовательность. Например, если вы хотите получить случайные числа от 0 до 10, включая 10, правильная формула будет следующей =RAND()*11 .

    Формула 2. Генерация случайных чисел между двумя числами

    Чтобы создать случайное число между любыми двумя указанными вами числами, используйте следующую формулу RAND:

    RAND()*( B - A )+ A

    Где A нижнее граничное значение (наименьшее число) и B верхнее граничное значение (наибольшее число).

    Например, для генерации случайных чисел от 10 до 50 можно использовать следующую формулу:

    =RAND()*(50-10)+10

    Примечание. Эта случайная формула никогда не вернет число, равное наибольшему числу из указанного диапазона ( B значение).

    Формула 3. Генерация случайных целых чисел в Excel

    Чтобы заставить функцию Excel RAND производить случайные целые числа, возьмите любую из вышеупомянутых формул и оберните ее в функцию INT.

    Для создания случайных целых чисел от 0 до 50:

    =INT(RAND()*50)

    Генерировать случайные целые числа от 10 до 50:

    =INT(RAND()*(50-10)+10)

    Функция Excel RANDBETWEEN - генерирование случайных целых чисел в заданном диапазоне

    RANDBETWEEN - это еще одна функция Excel для генерации случайных чисел. Она возвращает случайные числа. целые числа в указанном вами диапазоне:

    RANDBETWEEN(bottom, top)

    Очевидно, b оттоманка является наименьшим числом и топ это наибольшее число в диапазоне случайных чисел, которые вы хотите получить.

    Как и RAND, RANDBETWEEN в Excel является непостоянной функцией и возвращает новое случайное целое число каждый раз, когда ваша электронная таблица пересчитывается.

    Например, чтобы сгенерировать случайные целые числа от 10 до 50 (включая 10 и 50), используйте следующую формулу RANDBETWEEN:

    = RANDBETWEEN(10, 50)

    Функция RANDBETWEEN в Excel может создавать как положительные, так и отрицательные числа. Например, чтобы получить список случайных целых чисел от -10 до 10, введите в рабочий лист следующую формулу:

    =RANDBETWEEN(-10, 10)

    Функция RANDBETWEEN доступна в Excel 365 - Excel 2007. В более ранних версиях можно использовать формулу RAND, продемонстрированную в примере 3 выше.

    Далее в этом учебнике вы найдете еще несколько примеров формул, демонстрирующих использование функции RANDBETWEEN для генерации случайных значений, отличных от целых чисел.

    Совет. В Excel 365 и Excel 2021 можно использовать функцию динамического массива RANDARRAY для возврата массива случайных чисел между любыми двумя указанными вами числами.

    Создание случайных чисел с заданными десятичными знаками

    Хотя функция RANDBEETWEEN в Excel была разработана для возврата случайных целых чисел, вы можете заставить ее возвращать случайные десятичные числа с любым количеством знаков после запятой.

    Например, чтобы получить список чисел с одним десятичным знаком, нужно умножить нижнее и верхнее значения на 10, а затем разделить полученное значение на 10:

    RANDBETWEEN( нижнее значение * 10, высшая ценность * 10)/10

    Следующая формула RANDBETWEEN возвращает случайные десятичные числа в диапазоне от 1 до 50:

    = RANDBETWEEN(1*10, 50*10)/10

    Аналогичным образом, для генерации случайных чисел от 1 до 50 с 2 знаками после запятой, вы умножаете аргументы функции RANDBETWEEN на 100, а затем делите результат на 100:

    = RANDBETWEEN(1*100, 50*100) / 100

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

    Чтобы вернуть список случайных дат между заданными двумя датами, используйте функцию RANDBETWEEN в сочетании с DATEVALUE:

    RANDBETWEEN(DATEVALUE( дата начала ), DATEVALUE( дата окончания ))

    Например, чтобы получить список дат в период с 1 июня 2015 года по 30 июня 2015 года включительно, введите в рабочую таблицу следующую формулу:

    =RANDBETWEEN(DATEVALUE("1-Jun-2015"),DATEVALUE("30-Jun-2015"))

    В качестве альтернативы можно использовать функцию DATE вместо DATEVALUE:

    =RANDBETWEEN(DATE(2015,6,1),DATEVALUE(2015,6,30))

    Не забудьте применить формат даты к ячейке (ячейкам), и вы получите список случайных дат, подобный этому:

    Для получения ряда дополнительных опций, таких как генерация случайных дней недели или выходных, ознакомьтесь с разделом Расширенный генератор случайных дат.

    Как вставить случайное время в Excel

    Помня, что во внутренней системе Excel время хранится в виде десятичных дробей, вы можете использовать стандартную функцию Excel RAND для вставки случайных вещественных чисел, а затем просто применить формат времени к ячейкам:

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

    Формула 1. Генерирование случайных времен в указанном диапазоне

    Чтобы вставить случайное время между любыми двумя указанными вами временами, используйте функцию TIME или TIMEVALUE в сочетании с Excel RAND:

    ВРЕМЯ( время начала )+RAND() * (TIME( время начала ) - ВРЕМЯ( время окончания )) TIMEVALUE( время начала )+RAND() * (TIMEVALUE( время начала ) - TIMEVALUE( время окончания ))

    Например, чтобы вставить случайное время между 6:00 утра и 5:30 вечера, вы можете использовать одну из следующих формул:

    =TIME(6,0,0) + RAND() * (TIME(17,30,0) - TIME(6,0,0))

    = TIMEVALUE("6:00 AM") + RAND() * (TIMEVALUE("5:30 PM") - TIMEVALUE("6:00 AM"))

    Формула 2. Генерация случайных дат и времени

    Чтобы создать список случайных даты и время , используйте комбинации функций RANDBETWEEN и DATEVALUE:

    RANDBETWEEN(DATEVALUE( дата начала) , DATEVALUE( дата окончания )) + RANDBETWEEN(TIMEVALUE( время начала ) * 10000, TIMEVALUE( время окончания ) * 10000)/10000

    Предположим, вы хотите вставить случайные даты между 1 июня 2015 года и 30 июня 2015 года со временем между 7:30 утра и 6:00 вечера, следующая формула будет работать отлично:

    = RANDBETWEEN(DATEVALUE("1-Jun-2015"), DATEVALUE("30-Jun-2015")) + RANDBETWEEN(TIMEVALUE("7:30 AM") * 10000, TIMEVALUE("6:00 PM") * 10000) / 10000

    Вы также можете указать дату и время с помощью функций DATE и TIME соответственно:

    = RANDBETWEEN(DATE(2015,6,1), DATE(2015,6,30)) + RANDBETWEEN(TIME(7,30,0) * 10000, TIME(18,0,0) * 10000) / 10000

    Генерация случайных букв в Excel

    Чтобы вернуть случайную букву, необходимо сочетание трех различных функций:

    =CHAR(RANDBETWEEN(CODE("A"),CODE("Z"))))

    Где A является первым символом, а Z это последний символ в диапазоне букв, которые вы хотите включить (в алфавитном порядке).

    В приведенной выше формуле:

    • CODE возвращает числовые коды ANSI для указанных букв.
    • RANDBETWEEN принимает числа, возвращаемые функциями CODE, в качестве нижнего и верхнего значений диапазона.
    • CHAR преобразует случайные коды ANSI, возвращаемые RANDBETWEEN, в соответствующие буквы.

    Примечание. Поскольку коды ANSI различны для символов UPPERCASE и строчных символов, эта формула имеет вид с учетом регистра .

    Если кто-то помнит наизусть таблицу кодов символов ANSI, то ничто не мешает ввести коды непосредственно в функцию RANDBETWEEN.

    Например, чтобы получить случайные буквы UPPERCASE между A (код ANSI 65) и Z (код ANSI 90), вы пишете:

    =CHAR(RANDBETWEEN(65, 90))

    Генерировать строчные буквы с сайта a (код ANSI 97) к z (код ANSI 122), вы используете следующую формулу:

    =CHAR(RANDBETWEEN(97, 122))

    Чтобы вставить произвольный специальный символ, например ! " # $ % & ' ( ) * + , - . /, используйте функцию RANDBETWEEN с параметром дно параметр установлен на 33 (код ANSI для "!'") и топ параметр установлен на 47 (код ANSI для "/").

    =CHAR(RANDBETWEEN(33,47))

    Генерация текстовых строк и паролей в Excel

    Чтобы создать случайную текстовую строку в Excel, нужно просто объединить несколько функций CHAR / RANDBEETWEEN.

    Например, для генерации списка паролей, состоящих из 4 символов, можно использовать формулу, подобную этой:

    =RANDBETWEEN(0,9) & CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(97,122)) & CHAR(RANDBETWEEN(33,47))

    Чтобы сделать формулу более компактной, я ввел коды ANSI непосредственно в формулу. Четыре функции возвращают следующие случайные значения:

    • RANDBETWEEN(0,9) - возвращает случайные числа от 0 до 9.
    • CHAR(RANDBETWEEN(65,90)) - возвращает случайные буквы UPPERCASE между A и Z .
    • CHAR(RANDBETWEEN(97, 122)) - возвращает случайные строчные буквы между a и z .
    • CHAR(RANDBETWEEN(33,47)) - возвращает случайные специальные символы.

    Текстовые строки, созданные с помощью вышеприведенной формулы, будут иметь вид " 4Np# " или " 2Yu& ".

    Несколько слов предостережения! Если вы используете подобную формулу для создания случайных паролей, они не будут надежными. Конечно, ничто не говорит о том, что вы не можете генерировать более длинные текстовые строки, соединяя несколько функций CHAR / RANDBETWEEN. Однако невозможно рандомизировать порядок символов, т.е. первая функция всегда возвращает число, вторая - заглавную букву и так далее.

    Если вы ищете продвинутый генератор случайных паролей в Excel, способный создавать текстовые строки любой длины и шаблона, вам стоит ознакомиться с возможностями Advanced Random Generator для тестовых строк.

    Кроме того, имейте в виду, что текстовые строки, созданные с помощью приведенной выше формулы, будут меняться при каждом пересчете рабочего листа. Чтобы гарантировать, что ваши строки или пароли останутся неизменными после их создания, вам придется остановить функцию RANDBETWEEN от обновления значений, что ведет нас прямо к следующему разделу.

    Как предотвратить пересчет RAND и RANDBETWEEN

    Если вы хотите получить постоянный набор случайных чисел, дат или текстовых строк, которые не будут меняться при каждом пересчете листа, используйте одну из следующих техник:

    1. Чтобы остановить пересчет функций RAND или RANDBETWEEN в режиме одна ячейка , выделите эту ячейку, переключитесь на панель формул и нажмите F9, чтобы заменить формулу ее значением.
    2. Чтобы предотвратить пересчет случайной функции Excel, используйте функцию Paste Special> Values. Выделите все ячейки со случайной формулой, нажмите Ctrl + C, чтобы скопировать их, затем щелкните правой кнопкой мыши выделенный диапазон и нажмите кнопку Специальная вставка > Значения .

    Чтобы узнать больше об этой технике "замораживания" случайных чисел, см. раздел Как заменить формулы значениями.

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

    Ни одна из случайных функций Excel не может создавать уникальные случайные значения. Если вы хотите создать список случайных чисел без дубликатов , выполните следующие действия:

    1. Используйте функцию RAND или RANDBETWEEN для создания списка случайных чисел. Создайте больше значений, чем вам на самом деле нужно, потому что некоторые из них будут дубликатами, которые нужно будет удалить позже.
    2. Преобразуйте формулы в значения, как описано выше.
    3. Удалите дубликаты значений с помощью встроенного инструмента Excel или нашего усовершенствованного средства удаления дубликатов для Excel.

    Больше решений можно найти в этом руководстве: Как генерировать случайные числа без дубликатов.

    Расширенный генератор случайных чисел для Excel

    Теперь, когда вы знаете, как использовать случайные функции в Excel, позвольте мне продемонстрировать вам более быстрый, простой и не требующий формул способ создания списка случайных чисел, дат или текстовых строк в ваших рабочих листах.

    AbleBits Random Generator for Excel был разработан как более мощная и удобная альтернатива функциям RAND и RANDBETWEEN в Excel. Он одинаково хорошо работает со всеми версиями Microsoft Excel 2019, 2016, 2013, 2010, 2007 и 2003 и решает большинство проблем качества и удобства использования стандартных функций случайных чисел.

    Алгоритм генератора случайных чисел AbleBits

    Прежде чем показать наш генератор случайных чисел в действии, позвольте мне дать несколько ключевых заметок о его алгоритме, чтобы вы точно знали, что мы предлагаем.

    • AbleBits Random Number Generator for Excel основан на алгоритме Mersenne Twister, который считается отраслевым стандартом для высококачественной псевдослучайной рандомизации.
    • Мы используем версию MT19937, которая производит нормально распределенную последовательность 32-битных целых чисел с очень большим периодом 2^19937 - 1, что более чем достаточно для всех мыслимых сценариев.
    • Генератор случайных чисел успешно прошел множество тестов на статистическую случайность, включая известные тесты NIST Statistical Test Suite и Diehard, а также некоторые тесты на случайность TestU01 Crush.

    В отличие от функций случайных чисел Excel, наш генератор случайных чисел создает постоянные случайные значения которые не меняются при пересчете электронной таблицы.

    Как уже отмечалось, этот продвинутый генератор случайных чисел для Excel предлагает свободный от формул (и, следовательно, безошибочный :)) способ создания различных случайных значений, таких как:

    • Произвольные целые или десятичные числа, включая уникальные номера
    • Произвольные даты (рабочие дни, выходные или и то, и другое, а также, по желанию, уникальные даты)
    • Случайные текстовые строки, включая пароли заданной длины и образца, или по маске
    • Случайные булевы значения TRUE и FALSE
    • Случайный выбор из пользовательских списков

    А теперь, как и было обещано, посмотрим на генератор случайных чисел в действии.

    Генерация случайных чисел в Excel

    С помощью AbleBits Random Number Generator создать список случайных чисел так же просто, как нажать кнопку Создать кнопка.

    Генерация уникальных случайных целых чисел

    Все, что вам нужно сделать, это выбрать диапазон, который будет заполнен случайными целыми числами, установить нижнее и верхнее значения и, по желанию, проверить параметр Уникальные ценности коробка.

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

    Аналогичным образом можно сгенерировать серию случайных десятичных чисел в указанном вами диапазоне.

    Создание произвольных дат в Excel

    Для дат наш генератор случайных чисел предлагает следующие варианты:

    • Генерировать случайные даты для определенного периода времени - вы вводите нижнюю дату в С сайта и верхнюю дату в На коробка.
    • Включите будни, выходные или оба варианта.
    • Генерируйте уникальные даты.

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

    Помимо случайных чисел и дат, с помощью этого генератора случайных чисел вы можете легко создавать случайные буквенно-цифровые строки с определенным набором символов. Максимальная длина строки составляет 99 символов, что позволяет генерировать действительно надежные пароли.

    Уникальная возможность, предоставляемая генератором случайных чисел AbleBits, заключается в создании случайные текстовые строки по маске Это очень полезная функция для создания глобально уникальных идентификаторов (GUID), почтовых индексов, SKU и так далее.

    Например, чтобы получить список случайных GUID, вы выбираете шестнадцатеричный набор символов и вводите ????????-????-????-???????????? в поле Маска как показано на скриншоте:

    Если вам интересно попробовать наш генератор случайных чисел, вы можете скачать его ниже в составе нашего пакета Ultimate Suite для Excel.

    Доступные загрузки

    Примеры случайных формул (файл.xlsx)

    Ultimate Suite 14-дневная полнофункциональная версия (файл .exe)

    Майкл Браун — увлеченный технологический энтузиаст, стремящийся упростить сложные процессы с помощью программных инструментов. Имея более чем десятилетний опыт работы в технологической отрасли, он отточил свои навыки в Microsoft Excel и Outlook, а также в Google Sheets и Docs. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.