Сумма случайных чисел должна быть равна определенному числу excel
Прежде чем мы углубимся в различные методы производства случайных чисел в Excel, давайте определимся, что они собой представляют. Говоря простым языком, случайные данные – это последовательность цифр, букв или других символов, в которой отсутствуют какой-либо шаблон или закономерность.
Случайность имеет множество различных приложений в криптографии, статистике, лотерее, азартных играх и многих других областях. И поскольку она всегда была востребована, с древних времен существовали различные методы создания случайных чисел, такие как подбрасывание монет, бросание кубиков, тасование игральных карт и так далее. Конечно, мы не будем полагаться на такие «экзотические» техники в этом руководстве и сосредоточимся на том, что может предложить генератор случайных чисел Excel.
Создание случайных чисел в Excel – основы.
Случайные числа - это без всякой закономерности выбранная последовательность чисел. Но в жизни практически всегда применяются псевдослучайные числа. Их получают по заранее определенному сложному алгоритму. Для постороннего человека они выглядят случайными, но все же их можно предсказать, если узнать этот сложный алгоритм. Псевдослучайные числа применяются во всех компьютерных программах.
Хотя функции случайных чисел Excel удовлетворяют всем стандартным тестам на случайность, они все же не выдают истинные случайные числа. Но это не значит, что Excel для этих целей не годится. Псевдослучайные числа, создаваемые функциями Excel, прекрасно подходят для многих целей.
Давайте подробнее рассмотрим, как это происходит, чтобы вы знали, чего от стандартных функций Excel можно ожидать, а чего нельзя.
Как и большинство компьютерных программ, генератор случайных чисел Excel производит псевдослучайные числа с помощью некоторых математических формул. Для вас это означает, что теоретически эти числа, создаваемые Excel, предсказуемы. Но только при условии, что кто-то знает все детали алгоритма. Это причина того, что это никогда не было задокументировано и вряд ли когда-либо будет сделано.
Итак, как можно создавать случайные числа в Excel?
- Функции Excel СЛЧИС и СЛУЧМЕЖДУ (RAND и RANDBETWEEN в английской версии) возвращают псевдослучайные числа из равномерного распределения, также известного как прямоугольное распределение, где существует равная вероятность для всех значений, которые величина может принимать. Хороший пример равномерного распределения - бросок одной игральной кости. Итогом такой жеребьевки являются шесть возможных значений (1, 2, 3, 4, 5, 6), и каждое из них имеет одинаковую вероятность.
- Функции Excel СЛЧИС и СЛУЧМЕЖДУ, по слухам, инициализируются из системного времени компьютера. Технически начальное число является отправной точкой для создания последовательности чисел. И каждый раз, когда вызывается случайная функция Excel, используется новое начальное число, которое возвращает уникальную последовательность. Другими словами, при использовании генератора случайных чисел в Excel вы не можете получить повторяемую комбинацию ни с помощью функции СЛЧИС и СЛУЧМЕЖДУ, ни с помощью VBA, ни какими-либо другими способами.
- В ранних версиях Excel, до Excel 2003, алгоритм случайных чисел имел относительно небольшой диапазон (менее 1 миллиона неповторяющихся последовательностей чисел) и не прошел несколько стандартных тестов на случайность для длинных последовательностей. По этой причине, если кто-то все еще работает со старой версией Excel, вам лучше не использовать функцию СЛЧИС с большими имитационными моделями.
Это довольно длинное техническое введение закончено, и мы переходим к более практическим и более полезным вещам.
Функция случайного числа — СЛЧИС.
Функция СЛЧИС в Excel - одна из двух функций, специально разработанных для случайных чисел. Она возвращает произвольное десятичное число (действительное число) от 0 до 1.
СЛЧИС – это непостоянная функция, означающая, что новое случайное число возникает каждый раз при вычислении рабочего листа. А это происходит часто — когда вы выполняете какое-либо действие, например, редактируете формулу (не обязательно СЛЧИС, даже любую другую формулу на листе), редактируете ячейку или вводите новые данные.
Функция СЛЧИС доступна во всех версиях Excel, начиная с самых ранних.
Поскольку она не имеет аргументов, вы просто записываете её в ячейку, а затем копируете куда это необходимо:
А теперь давайте составим несколько формул СЛЧИС для создания случайных чисел в соответствии с вашими условиями.
Ограничение верхней границы диапазона случайных чисел.
Чтобы создать массив от нуля до любого значения N, вы умножаете функцию СЛЧИС на N:
Например, чтобы создать последовательность чисел, больше или равных 0, но меньше 50, используйте следующую формулу:
Примечание. Значение верхней границы никогда не включается в возвращаемую последовательность. Например, если вы хотите получить случайные числа от 0 до 10, включая 10, правильная формула будет =СЛЧИС()*11.
Обратите также внимание, что количество отображаемых десятичных знаков определяется форматом ячеек. В данном случае установлено 2 знака после запятой, хотя на самом деле их гораздо больше. Об округлении их мы поговорим чуть ниже.
Случайные числа в интервале «от-до».
Чтобы создать случайное число между любыми двумя указанными вами величинами, используйте следующую формулу СЛЧИС:
Где A - значение нижней границы (наименьшее число), а B - значение верхней границы (наибольшее).
Например, чтобы записать на ваш лист случайные числа от 10 до 50, вы можете использовать следующую формулу:
Примечание. Эта формула никогда не вернет число, равное максимальному значению указанного диапазона (то есть, B).
Случайные целые числа.
Чтобы функция Excel СЛЧИС выдавала целые числа, возьмите любую из вышеупомянутых формул и оберните ее в функцию ЦЕЛОЕ().
Чтобы создать случайные целые числа от 0 до 50:
Чтобы получить их в интервале от 10 до 50:
А теперь рассмотрим более новую функцию — СЛУЧМЕЖДУ().
Функция Excel СЛУЧМЕЖДУ — как получить случайные целые числа в указанном диапазоне
СЛУЧМЕЖДУ - еще одна функция, предоставляемая Excel для случайных чисел. Она возвращает их в указанном вами диапазоне:
Как и СЛЧИС, СЛУЧМЕЖДУ в Excel – это непостоянная функция, которая возвращает новый результат каждый раз, когда ваша электронная таблица пересчитывается. А происходит это при любом изменении на листе.
Например, чтобы решить ту же задачу, которую мы рассматривали чуть выше: получить случайные целые числа от 10 до 50 (включая 10 и 50), используйте следующую формулу:
Функция СЛУЧМЕЖДУ в Excel может создавать как положительные, так и отрицательные числа. Например, чтобы получить список целых чисел от -10 до 10, введите следующую формулу:
Функция СЛУЧМЕЖДУ доступна в Excel 2019 - 2007. В более ранних версиях вы можете использовать формулу СЛЧИС, рассмотренную нами выше.
Далее в этом руководстве вы найдете еще несколько примеров формул, демонстрирующих, как использовать функцию СЛУЧМЕЖДУ для записи случайных значений, отличных от целых.
Как создавать случайные числа с нужным количеством десятичных знаков.
Хотя функция СЛУЧМЕЖДУ в Excel была разработана для возврата целых чисел, вы можете заставить ее возвращать случайные десятичные числа с любым количеством знаков после запятой.
Например, чтобы получить список чисел с одним десятичным знаком, вы умножаете нижнее и верхнее значения на 10, а затем делите возвращаемое значение на 10:
СЛУЧМЕЖДУ( нижнее значение * 10; верхнее значение * 10) / 10
Следующая формула СЛУЧМЕЖДУ() возвращает случайные десятичные числа от 1 до 50:
Однако, обратите внимание, что среди полученных результатов встречаются и значения без десятых, то есть десятичный знак может быть равен нулю.
Аналогичным образом, чтобы выдать случайные числа от 1 до 50 с двумя десятичными знаками, вы умножаете аргументы функции СЛУЧМЕЖДУ на 100, а затем также делите результат на 100:
=СЛУЧМЕЖДУ(1*100; 50*100) / 100
Как получить случайные даты в Excel
Как вы знаете, даты в Excel представляют собой числа. Поэтому рассматриваемые нами подходы вполне применимы и к ним.
Чтобы вернуть список произвольных дат в каком-то временном интервале, используйте функцию СЛУЧМЕЖДУ в сочетании с ДАТАЗНАЧ:
СЛУЧМЕЖДУ(ДАТАЗНАЧ( дата начала ), ДАТАЗНАЧ( дата окончания ))
Например, чтобы получить список дат с 1 июня 2015 года по 30 июня 2015 года включительно, введите следующую формулу в свой рабочий лист:
В качестве альтернативы вы можете использовать функцию ДАТА:
Не забудьте применить формат даты, и вы получите список случайных дат, подобный этому:
Для некоторых дополнительных опций, таких как получение списка будних или выходных дней, можно использовать расширенный генератор случайных чисел и дат .
Как вставить случайное время в Excel
Учитывая, что во внутренней системе Excel время хранится как десятичное число от 0 до 1, вы можете использовать стандартную функцию Excel СЛЧИС для вставки случайных действительных чисел, а затем просто применить формат времени к этим ячейкам:
Чтобы вернуть случайное время в соответствии с вашими критериями, требуются более сложные формулы, как показано ниже.
Случайное время в указанном интервале.
Чтобы вставить случайное время между любыми двумя указанными вами значениями времени, используйте функцию ВРЕМЯ() или ВРЕМЗНАЧ() вместе с СЛЧИС():
ВРЕМЯ( время начала ) + СЛЧИС() * (ВРЕМЯ( время начала ) - ВРЕМЯ( время окончания ))
ВРЕМЗНАЧ ( время начала ) + СЛЧИС () * (ВРЕМЗНАЧ ( время начала ) - ВРЕМЗНАЧ ( время окончания ))
Например, чтобы вставить время между 6:00 и 20:30, вы можете использовать любую из следующих формул:
=ВРЕМЯ(6;0;0) + СЛЧИС() * (ВРЕМЯ(20;30;0) - ВРЕМЯ(6;0;0))
=ВРЕМЗНАЧ("6:00:00") + СЛЧИС() * (ВРЕМЗНАЧ("20:30:00") - ВРЕМЗНАЧ("6:00:00"))
Случайные дата и время.
Чтобы создать список случайных дат и времени, используйте комбинации функций СЛУЧМЕЖДУ и ДАТАЗНАЧ:
СЛУЧМЕЖДУ(ДАТАЗНАЧ( начальная дата) ; ДАТАЗНАЧ( конечная дата )) + СЛУЧМЕЖДУ(ВРЕМЗНАЧ( время начала ) * 10000; ВРЕМЗНАЧ( время окончания ) * 10000) / 10000
Предположим, вы хотите вставить произвольные даты между 1 июня 2021 года и 31 августа того же года со временем между 8:30 и 17:00. Следующая формула подойдет для вас:
=СЛУЧМЕЖДУ(ДАТАЗНАЧ("1-июн-2021"); ДАТАЗНАЧ("31-авг-2021")) + СЛУЧМЕЖДУ(ВРЕМЗНАЧ("8:30") * 10000; ВРЕМЗНАЧ("17:00") * 10000) / 10000
Вы также можете указать дату и время, используя функции ДАТА и ВРЕМЯ соответственно:
=СЛУЧМЕЖДУ(ДАТА(2021;6;1); ДАТА(2021;8;31)) + СЛУЧМЕЖДУ(ВРЕМЯ(8;30;0) * 10000; ВРЕМЯ(17;0;0) * 10000) / 10000
Выбирайте тот вариант, который больше подходит для вашей задачи.
Как получить случайные буквы в Excel
Чтобы вернуть случайную букву, требуется комбинация трех разных функций:
Где A - первый символ, а Я - последний символ в диапазоне букв, который вы хотите использовать (в алфавитном порядке).
В приведенной выше формуле:
- КОДСИМВ() возвращает коды ANSI для указанных букв.
- СЛУЧМЕЖДУ() принимает код, возвращаемый функцией КОДСИМВ, как нижнее и верхнее значения диапазона.
- СИМВОЛ() преобразует коды ANSI, возвращаемые СЛУЧМЕЖДУ, в соответствующие буквы.
Примечание. Так как код ANSI различный для прописных и строчных букв, эта формула чувствительна к регистру.
Если кто-то помнит таблицу кодов символов ANSI, ничто не мешает вам передать коды букв непосредственно в функцию СЛУЧМЕЖДУ.
Например, чтобы получить заглавные буквы между A (код ANSI 192) и Я (код ANSI 223), вы пишете:
Чтобы получить строчные буквы от а (код ANSI 224) до я (код ANSI 255), используйте следующую формулу:
- 192-223 — прописные буквы А-Я
- 224-255 — строчные буквы а-я
Создание текстовых строк и паролей в Excel
Чтобы создать произвольную текстовую строку в Excel, вам просто нужно объединить несколько функций СИМВОЛ и СЛУЧМЕЖДУ.
Например, чтобы получить список паролей, состоящих из 4 символов, вы можете использовать формулу, подобную этой:
Чтобы сделать запись более компактной, я ввел коды ANSI непосредственно в формулу. Четыре функции возвращают следующие случайные значения:
- СЛУЧМЕЖДУ(0;9) — возвращает числа от 0 до 9.
- СИМВОЛ(СЛУЧМЕЖДУ(65;90)) —прописные буквы от A до Z.
- СИМВОЛ(СЛУЧМЕЖДУ(97; 122)) — получаем строчные буквы от a до z.
- СИМВОЛ(СЛУЧМЕЖДУ(33;47)) — добавляем специальные символы.
Внимание! Если вы используете аналогичную формулу для создания случайных паролей, они не будут слишком надежными. Конечно, вы можете создавать более длинные текстовые строки, связывая больше функций. Однако невозможно изменить порядок следования, т.е. первая по счёту функция всегда возвращает цифру, вторая функция возвращает заглавную букву и так далее.
Если вы ищете расширенный генератор случайных паролей в Excel, способный создавать текстовые строки любой длины и шаблона, вы можете проверить возможности Advanced Random Generator для тестовых строк.
Кроме того, имейте в виду, что текстовые строки, созданные с помощью приведенной выше формулы, будут изменяться каждый раз, когда ваш рабочий лист пересчитывается. А это автоматически происходит после ввода либо корректировки любого значения либо формулы на листе.
Чтобы гарантировать, что ваши строки или пароли остаются неизменными после их создания, вам нужно будет заблокировать функцию СЛУЧМЕЖДУ от обновления значений, что подводит нас непосредственно к следующему разделу.
Как предотвратить постоянный пересчет формул СЛЧИС и СЛУЧМЕЖДУ.
Если вы хотите получить постоянный набор чисел, дат или текстовых строк, который не будет меняться каждый раз при пересчете таблицы, используйте один из следующих методов:
- Чтобы функции СЛЧИС или СЛУЧМЕЖДУ не пересчитывались в одной определённой ячейке, выберите её, переключитесь на строку формул и нажмите клавишу F9 , чтобы заменить формулу ее значением.
- Чтобы предотвратить пересчет, используйте инструмент Специальная вставка. Выделите все ячейки с формулой, нажмите Ctrl + C , чтобы скопировать их в буфер обмена. Затем щелкните правой кнопкой мыши выбранный диапазон и выберите Специальная вставка >Значения. Или же можете нажать Shift + F10 а потом V , что также позволит вставить ранее скопированные значения вместо формул.
- Можно использовать специальный инструмент преобразования формул в значения, который является составной частью надстройки Ultimate Suite.
Как создать уникальные случайные числа в Excel
Ни одна из случайных функций Excel не умеет создавать уникальные случайные значения. Совпадения всегда возможны, особенно если вы получаете целые числа, используя округление. Если вы хотите создать список без дубликатов , выполните следующие действия:
- Используйте функцию СЛЧИС или СЛУЧМЕЖДУ для создания списка чисел. Создайте больше значений, чем вам действительно нужно, потому что некоторые из них будут дублироваться и будут удалены позже.
- Преобразуйте формулы в значения, как описано выше.
- Удалите повторяющиеся значения с помощью встроенного инструмента Excel (см. Как удалить дубликаты в Excel) или специального инструмента для удаления дубликатов в Excel.
Также вы можете воспользоваться специальным генератором случайных значений в Excel, в котором есть опция получения случайных цифровых и текстовых значений. Более подробно читайте о нем по этой ссылке.
Как перемешать строки и сделать случайный выбор из списка - Как в Excel сделать случайный выбор нужного количества ячеек, строк или столбцов из диапазона или из списка. Как перемешать ячейки или строки в случайном порядке.
Расширенный генератор случайных чисел для Excel - Теперь, когда вы знаете, как использовать случайные функции в Excel, позвольте мне продемонстрировать вам более быстрый, простой и не требующий формул способ создания списка случайных чисел, дат или текстовых строк…
Добрый день. Прошу помочь в решении задачи. Необходимо создать таблицу случайных чисел (например: 1 столбец - 55%+-2%; столбец 2 - 22%+-2%; и т.д), но чтобы в сумме получалось 100% и при этом в строке останавливалась случайная генерация и значения оставались, либо автоматически копировались сгенерированные значения в другие ячейки. Заранее благодарен
Добрый день. Прошу помочь в решении задачи. Необходимо создать таблицу случайных чисел (например: 1 столбец - 55%+-2%; столбец 2 - 22%+-2%; и т.д), но чтобы в сумме получалось 100% и при этом в строке останавливалась случайная генерация и значения оставались, либо автоматически копировались сгенерированные значения в другие ячейки. Заранее благодарен nik_irk
и дальше протянуть.
Сумма может быть меньше 100 только в случае, если не будет хватать ячеек с формулами.
Если допустимы не целочисленные значения - меняйте параметр округления.
и дальше протянуть.
Сумма может быть меньше 100 только в случае, если не будет хватать ячеек с формулами.
Если допустимы не целочисленные значения - меняйте параметр округления. Perfect2You
и дальше протянуть.
Сумма может быть меньше 100 только в случае, если не будет хватать ячеек с формулами.
Если допустимы не целочисленные значения - меняйте параметр округления. Автор - Perfect2You
Дата добавления - 09.03.2017 в 00:24
Perfect2You,
Не в защиту свого скрипта, а просто как предостережение. Непонятно , как долго протягивать, а если с избытком, то остальные нули будут. именно по этому от формулы в скрипт подался, ну и +-2 подстегивали.
Perfect2You,
Не в защиту свого скрипта, а просто как предостережение. Непонятно , как долго протягивать, а если с избытком, то остальные нули будут. именно по этому от формулы в скрипт подался, ну и +-2 подстегивали. bmv98rus
Не в защиту свого скрипта, а просто как предостережение. Непонятно , как долго протягивать, а если с избытком, то остальные нули будут. именно по этому от формулы в скрипт подался, ну и +-2 подстегивали. Автор - bmv98rus
Дата добавления - 09.03.2017 в 10:46
Не чтобы погубить скрипт, а, скорее, истины ради.
Предостережения абсолютно верны. Могу только подсказать, как обходить связанные с ними гадости.
Как долго протягивать, зависит от ограничения максимального значения случайного числа. При реализованном ограничении во все 100, сумма 100 набирается раза за 2-4. Можно точно вероятность высчитать, но лучше просто сделать с запасом. 10, думаю, за глаза.
Нули в конце (если мешают) легко превратить в пустые строки функцией ЕСЛИ или настройку задать, не отображающую нули. Думаю, что перебрал не все варианты. Конечная цель не была озвучена, в зависимости от нее, наверно, можно придумать что-то.
Пользительно еще суммирование вставить рядышком (например, в B2), чтобы видеть сразу: реализована ли вся сотня. Если нет, просто пересчитать еще разок. Или формулу дотянуть. Это и вручную, и скрипту поручить можно.
А так, Ваша правда. Есть у формульного подхода недостатки.
Не чтобы погубить скрипт, а, скорее, истины ради.
Предостережения абсолютно верны. Могу только подсказать, как обходить связанные с ними гадости.
Как долго протягивать, зависит от ограничения максимального значения случайного числа. При реализованном ограничении во все 100, сумма 100 набирается раза за 2-4. Можно точно вероятность высчитать, но лучше просто сделать с запасом. 10, думаю, за глаза.
Нули в конце (если мешают) легко превратить в пустые строки функцией ЕСЛИ или настройку задать, не отображающую нули. Думаю, что перебрал не все варианты. Конечная цель не была озвучена, в зависимости от нее, наверно, можно придумать что-то.
Пользительно еще суммирование вставить рядышком (например, в B2), чтобы видеть сразу: реализована ли вся сотня. Если нет, просто пересчитать еще разок. Или формулу дотянуть. Это и вручную, и скрипту поручить можно.
А так, Ваша правда. Есть у формульного подхода недостатки. Perfect2You
Предостережения абсолютно верны. Могу только подсказать, как обходить связанные с ними гадости.
Как долго протягивать, зависит от ограничения максимального значения случайного числа. При реализованном ограничении во все 100, сумма 100 набирается раза за 2-4. Можно точно вероятность высчитать, но лучше просто сделать с запасом. 10, думаю, за глаза.
Нули в конце (если мешают) легко превратить в пустые строки функцией ЕСЛИ или настройку задать, не отображающую нули. Думаю, что перебрал не все варианты. Конечная цель не была озвучена, в зависимости от нее, наверно, можно придумать что-то.
Пользительно еще суммирование вставить рядышком (например, в B2), чтобы видеть сразу: реализована ли вся сотня. Если нет, просто пересчитать еще разок. Или формулу дотянуть. Это и вручную, и скрипту поручить можно.
А так, Ваша правда. Есть у формульного подхода недостатки. Автор - Perfect2You
Дата добавления - 09.03.2017 в 11:48
Спасибо, за помощь. Вот что удалось нарыть (если кому пригодиться). Немного еще не допёр как работает, но работает как нужно.
Спасибо, за помощь. Вот что удалось нарыть (если кому пригодиться). Немного еще не допёр как работает, но работает как нужно. nik_irk
Не очень частый, но и не экзотический случай. На моих тренингах такой вопрос задавали не один и не два раза :) Суть в том, что мы имеем конечный набор каких-то чисел, из которых надо выбрать те, что дадут в сумме заданное значение.
В реальной жизни эта задача может выглядеть по-разному.
- Например, мы выгрузили из интернет-банка все платежи, которые поступили на наш счет за последний месяц. Один из клиентов разбивает сумму своего платежа на несколько отдельных счетов и платит частями. Мы знаем общую сумму оплаты и количество счетов, но не знаем их сумм. Надо подобрать те суммы в истории платежей, которые дадут в общем заданное значение.
- У нас есть несколько рулонов стали (линолеума, бумаги. ), из которых надо подобрать под заказ те, что дадут заданную длину.
- Блэкджек или в народе "очко". Надо набрать карты суммарной стоимостью максимально близкой к 21 баллу, но не превысить этот порог.
В некоторых случаях может быть известна разрешенная погрешность допуска. Она может быть как нулевой (в случае подбора счетов), так и ненулевой (в случае подбора рулонов), или ограниченной снизу или сверху (в случае блэкджека).
Давайте рассмотрим несколько способов решения такой задачи в Excel.
Способ 1. Надстройка Поиск решения (Solver)
Эта надстройка входит в стандартный набор пакета Microsoft Office вместе с Excel и предназначена, в общем случае, для решения линейных и нелинейных задач оптимизации при наличии списка ограничений. Чтобы ее подключить, необходимо:
- в Excel 2007 и новее зайти Файл - Параметры Excel - Надстройки - Перейти (File - Excel Options - Add-ins - Go)
- в Excel 2003 и старше - открыть меню Сервис - Надстройки (Tools - Add-ins)
и установить соответствующий флажок. Тогда на вкладке или в меню Данные (Data) появится нужная нам команда.
Чтобы использовать надстройку Поиск решения для нашей задачи необходимо будет слегка модернизировать наш пример, добавив к списку подбираемых сумм несколько вспомогательных ячеек и формул:
- Диапазон A1:A20 содержит наши числа, из которых мы будем выбирать нужные, чтобы "вписаться" в заданную сумму.
- Диапазон В1:B20 будет своего рода набором переключателей, т.е. будет содержать нули или единички, показывая, отбираем мы данное число в выборку или нет.
- В ячейке E2 стоит обычная автосумма всех единичек по столбцу B, подсчитывающая кол-во выбранных чисел.
- В ячейке E3 с помощью функции СУММПРОИЗВ (SUMPRODUCT) считается сумма попарных произведений ячеек из столбцов А и B (то есть A1*B1+A2*B2+A3*B3+. ). Фактически, здесь подсчитывается сумма чисел из столбца А, отобранных единичками из столбца В.
- В розовую ячейку E4 пользователь вводит желаемую сумму для подбора.
- В ячейке E5 вычисляется абсолютное по модулю значение погрешности подбора с целью ее будущей минимизации.
- Все желтых ячейках Е8:E17 хотелось бы получить список отобранных чисел, т.е. тех чисел из столбца А, напротив которых в столбце В есть единички. Для этого необходимо выделить сразу все (!) желтые ячейки и в них ввести вот такую формулу массива:
=ЕСЛИОШИБКА(ИНДЕКС($A$1:$A$20;НАИМЕНЬШИЙ(ЕСЛИ(B1:B20=1;СТРОКА(B1:B20);"");СТРОКА()-СТРОКА($E$8)+1));"")
=IFERROR(INDEX($A$1:$A$20;SMALL(IF(B1:B20=1;ROW(B1:B20);"");ROW()-ROW($E$8)+1));"")
После ввода формулы ее необходимо ввести не как обычную формулу, а как формулу массива, т.е. нажать не Enter, а Ctrl+Shift+Enter. Похожая формула используется в примере о ВПР, выдающей сразу все найденные значения (а не только первое).
Теперь перейдем на вкладку (или в меню) Данные и запустим инструмент Поиск решения (Data - Solver):
В открывшемся окне необходимо:
- Задать как целевую функцию (Target Cell) - ячейку вычисления погрешности подбора E5. Чуть ниже выбрать опцию - Минимум, т.к. мы хотим подобрать числа под заданную сумму с минимальной (а лучше даже нулевой) погрешностью.
- В качестве изменяемых ячеек переменных (Changing cells) задать диапазон столбца переключателей B1:B20.
- С помощью кнопки Добавить (Add) создать дополнительное условие на то, что ячейки диапазона B1:B20 должны быть бинарными (т.е. содержать только 0 или 1):
После ввода всех параметров и ограничений запускаем процесс подбора кнопкой Найти решение (Solve). Процесс подбора занимает от нескольких секунд до нескольких минут (в тяжелых случаях) и заканчивается появлением следующего окна:
Теперь можно либо оставить найденное решение подбора (Сохранить найденное решение), либо откатиться к прежним значениям (Восстановить исходные значения).
Необходимо отметить, что для такого класса задач существует не одно, а целое множество решений, особенно, если не приравнивать жестко погрешность к нулю. Поэтому запуск Поиска решения с разными начальными данными (т.е. разными комбинациями 0 и 1 в столбце В) может приводить к разным наборам чисел в выборках в пределах заданных ограничений. Так что имеет смысл прогнать эту процедуру несколько раз, произвольно изменяя переключатели в столбце В.
Найденные комбинации можно сохранять виде сценариев (кнопка Сохранить сценарий), чтобы вернуться к нем позднее с помощью команды Данные - Анализ "что-если" - Диспетчер сценариев (Data - What-If Analysis - Scenario Manager):
И весьма удобно будет вывести все найденные решения, сохраненные в виде сценариев, в одной сравнительной таблице с помощью кнопки Отчет (Summary):
Способ 2. Макрос подбора
В этом способе всю работу делает макрос, который тупо перебирает случайные комбинации чисел, пока не наткнется на нужную сумму в пределах разрешенной погрешности. Добавлять столбец с нулями и единичками и формулы в этом случае не нужно.
Для использования макроса нажмите сочетание Alt+F11, в открывшемся окне редактора Visual Basic вставьте новый модуль через меню Insert - Module и скопируйте туда этот код:
Аналогично первому способу, запуская макрос несколько раз, можно получать разные наборы подходящих чисел.
P.S. Сейчас набегут энтузиасты с мехмата МГУ с криками "Тупой перебор - это неэстетично!" Да, я в курсе, что прямой перебор вариантов - это не самый оптимальный способ поиска. Да, существует много умных алгоритмов поиска решения таких задач, которые сокращают время поиска и находят нужную комбинацию заметно быстрее. Могу даже рассказать про парочку. Но мне на данном этапе существующей скорости "тупого перебора" вполне достаточно - обработка массива из 1000 ячеек идет меньше секунды. Готов подождать :)
При решении задач в Microsoft Office Excel с помощью макросов иногда необходимо сгенерировать произвольные числа для проверки правильности работы программы. Или нужно создать большой массив различных цифр без повторений. Для подобных заданий в редакторе заложены специализированные функции, и сегодня разберемся, как задать случайное число в excel.
Функции
Excel содержит две функции, которые позволяют генерировать произвольные цифры –СЛЧИС и СЛУЧМЕЖДУ. Рассмотрим каждую из них более подробно.
Функция СЛЧИС не имеет аргументов, поэтому просто вписываете ее в строку формул и нажимаете Enter.
При помощи маркера автозаполнения можно применить формулу к нужному количеству ячеек.
Важно! При любом действии с ячейкой число автоматически изменяется. Чтобы его зафиксировать, необходимо поставить курсор в нужную ячейку, выделить выражение в строке формул и нажать клавишу F9.
Особенностью этой функции является то, что она работает в пределах от нуля включительно до единицы с нормальным распределением.
Чтобы сгенерировать цифры в заданном диапазоне, например от 3 до 8, необходимо дополнять формулу.
Чтобы сгенерировать случайное целое число, отлично подойдет функция СЛУЧМЕЖДУ. Где в качестве аргументов выступают два числа – верхняя и нижняя границы. При этом существует несколько особенностей:
- Первая часть формулы должна быть меньше второй.
- Границы должны быть целыми числами.
- Цифры после запятой отбрасываются.
Если умножить формулу на определенный коэффициент, то можно создать случайное дробное число с десятыми, сотыми, тысячными и так далее.
В качестве бонуса рассмотрим, как использовать excel для лотереи. Для начала нужно выгрузить базу данных участников в программу любым известным способом, а затем провести розыгрыш. Формула будет выглядеть следующим образом:
Где СЧЕТЗ возвращает количество непустых ячеек, а ИНДЕКС позволяет вывести значение ячейки, которая находится на пересечении конкретной строки и столбца.
Специальный инструмент
Генератор случайных чисел можно найти в пакете анализа данных, который активируется через надстройки Excel. Чтобы воспользоваться этой функцией, необходимо нажать отдельную кнопку во вкладке Данные на Панели инструментов и из списка выбрать нужную строку.
Откроется окно настроек, в котором задаете число переменных и количество случайных чисел, затем указываете дополнительные параметры и место вывода полученных данных. Для примера используем нормальное распределение, которое можно выбрать из отдельного списка.
В результате получилось следующее:
Этот метод намного проще, чем описанные выше способы. Однако он не позволяет накладывать дополнительные условия, поэтому генерация не всегда может удовлетворять требованиям пользователя.
Как видите, в редакторе существует несколько способов задания произвольного числа. Если нужны какие-то ограничения, то используйте встроенные функции, а если важно наличие случайного значения, то генератор из анализа данных подойдет лучше.
Жми «Нравится» и получай только лучшие посты в Facebook ↓
Рассмотрим генерацию случайных чисел с помощью надстройки Пакет Анализа и формул MS EXCEL.
В надстройку Пакет анализа входит инструмент Генерация случайных чисел, с помощью которого можно сгенерировать случайные числа, имеющие различные распределения.
С помощью надстройки Пакет Анализа можно сгенерировать случайные числа следующих распределений:
Кликнув на нужное распределение, можно открыть статью, где подробно написано о генерировании случайных чисел с помощью надстройки Пакет Анализа и с помощью формул.
В MS EXCEL имеется множество функций, с помощью которых можно сгенерировать случайные числа, принадлежащие различным распределениям. И лишь часть из этих распределений представлено в окне инструмента Генерация случайных чисел. Чтобы сгенерировать случайные числа из других распределений см. статью про распределения MS EXCEL, в которой можно найти ссылки на другие распределения.
Примечание: С помощью другого инструмента надстройки Пакет анализа, который называется «Выборка», можно извлечь случайную выборку из конечной генеральной совокупности. Подробнее см. статью Случайная выборка из генеральной совокупности в MS EXCEL.
Модельное распределение
С помощью надстройки Пакет Анализа можно сгенерировать числа, имеющее так называемое модельное распределение. В этом распределении нет никакой случайности — генерируются заранее заданные последовательности чисел.
Поле Число переменных задает количество столбцов генерируемых данных. Т.к. в них будут сгенерированы совершенно одинаковые данные, то нет особого смысла указывать в поле Число переменных значение отличное от 1.
Поле Число случайных чисел можно оставить незаполненным, т.к. оно рассчитывается автоматически в зависимости от значений, указанных в группе Параметры диалогового окна. Например, при параметрах, указанных на рисунке выше, в каждом столбце будет выведено по 24 «случайных» числа: четыре нечетных числа 1; 3; 5; 7 (от 1 и до 7; шаг равен 2) будут повторены по 2 раза, а каждая последовательность будет повторена по 3 раза (4*2*3=24).
Произвольное дискретное распределение
С помощью надстройки Пакет Анализа можно сгенерировать числа, имеющие произвольное дискретное распределение, т.е. распределение, где пользователь сам задает значения случайной величины и соответствующие вероятности.
Необходимо следить, чтобы сумма вероятностей модельного распределения была равна 1. Для этого в MS EXCEL имеется специальная функция ВЕРОЯТНОСТЬ() .
СОВЕТ: О генерации чисел, имеющих произвольное дискретное распределение, см. статью Генерация дискретного случайного числа с произвольной функцией распределения в MS EXCEL. В этой статье также рассмотрена функция ВЕРОЯТНОСТЬ() .
Доброго времени суток, уважаемый, читатель!
Недавно, возникла необходимость создать своеобразный генератор случайных чисел в Excel в границах нужной задачи, а она была простая, с учётом количества человек выбрать случайного пользователя, всё очень просто и даже банально. Но меня заинтересовало, а что же ещё можно делать с помощью такого генератора, какие они бывают, каковые их функции для этого используются и в каком виде. Вопросом много, так что постепенно буду и отвечать на них.
Итак, для чего же собственно мы можем использовать этом механизм:
- во-первых: мы можем для тестировки формул, заполнить нужный нам диапазон случайными числами;
- во-вторых: для формирования вопросов различных тестов;
- в-третьих: для любого случайно распределения заранее пронумерованных задач между вашими сотрудниками;
- в-четвёртых: для симуляции разнообразнейших процессов;
…… да и во многих других ситуациях!
В этой статье я рассмотрю только 3 варианта создания генератора (возможности макроса, я не буду описывать), а именно:
Создаём генератор случайных чисел с помощью функции СЛЧИС
С помощью функции СЛЧИС, мы имеем возможность генерировать любое случайное число в диапазоне от 0 до 1 и эта функция будет выглядеть так:
Если возникает необходимость, а она, скорее всего, возникает, использовать случайное число большого значения, вы просто можете умножить вашу функцию на любое число, к примеру 100, и получите:
=СЛЧИС()*100; А вот если вам не нравятся дробные числа или просто нужно использовать целые числа, тогда используйте такую комбинацию функций, это позволит вам отсечь значения после запятой или просто отбросить их:
=ОТБР((СЛЧИС()*100);0) Когда возникает необходимость использовать генератор случайных чисел в каком-то определённом, конкретном диапазоне, согласно нашим условиям, к примеру, от 1 до 6 надо использовать следующую конструкцию (обязательно закрепите ячейки с помощью абсолютных ссылок):
- a – представляет нижнюю границу,
- b – верхний предел
и полная формула будет выглядеть: =СЛЧИС()*(6-1)+1, а без дробных частей вам нужно написать: =ОТБР(СЛЧИС()*(6-1)+1;0)
Создаём генератор случайных чисел с помощью функции СЛУЧМЕЖДУ
Эта функция более проста и начала нас радовать в базовой комплектации Excel, после 2007 версии, что значительно облегчило работу с генератором, когда необходимо использовать диапазон. К примеру, для генерации случайного числа в диапазоне от 20 до 50 мы будем использовать конструкцию следующего вида:
Создаём генератор с помощью надстройки AnalysisToolPack
В третьем способе не используется никакая функция генерации, а всё делается с помощью надстройки AnalysisToolPack (эта надстройка входит в состав Excel). Встроенный в табличном редакторе инструмент можно использовать как инструмент генерации, но нужно знать если вы хотите изменить набор случайных чисел, то вам нужно эту процедуру перезапустить.
Для получения доступа к этой, бесспорно, полезной надстройки, нужно, для начала, с помощью диалогового окна «Надстройки» установить этот пакет. Если у вас он уже установлен, то дело за малым, выбираете пункт меню «Данные» – «Анализ» – «Анализ данных», выбираете «Генерация случайных чисел» в предложенном программой списке и жмём «ОК».
В открывшемся окне мы выбираем тип в меню «Распределение», после указываем дополнительные параметры, которые изменяются, исходя с типа распределения. Ну и финальный шаг, это указание «Выходной интервал», именно тот интервал где будут храниться, ваши случайные числа.
А на этом у меня всё! Я очень надеюсь, что вопрос по созданию генератора случайных чисел я раскрыл полностью и вам всё понятно. Буду очень благодарен за оставленные комментарии, так как это показатель читаемости и вдохновляет на написание новых статей! Делитесь с друзьями прочитанным и ставьте лайк!
Не забудьте поблагодарить автора!
Не додумывай слишком много. Так ты создаешь проблемы, которых изначально не было.
Excel содержит две функции, которые позволяют генерировать произвольные цифры –СЛЧИС и СЛУЧМЕЖДУ. Рассмотрим каждую из них более подробно.
Функция СЛЧИС не имеет аргументов, поэтому просто вписываете ее в строку формул и нажимаете Enter.
При помощи маркера автозаполнения можно применить формулу к нужному количеству ячеек.
Важно! При любом действии с ячейкой число автоматически изменяется. Чтобы его зафиксировать, необходимо поставить курсор в нужную ячейку, выделить выражение в строке формул и нажать клавишу F9.
Особенностью этой функции является то, что она работает в пределах от нуля включительно до единицы с нормальным распределением.
Чтобы сгенерировать цифры в заданном диапазоне, например от 3 до 8, необходимо дополнять формулу.
Чтобы сгенерировать случайное целое число, отлично подойдет функция СЛУЧМЕЖДУ. Где в качестве аргументов выступают два числа – верхняя и нижняя границы. При этом существует несколько особенностей:
- Первая часть формулы должна быть меньше второй.
- Границы должны быть целыми числами.
- Цифры после запятой отбрасываются.
Если умножить формулу на определенный коэффициент, то можно создать случайное дробное число с десятыми, сотыми, тысячными и так далее.
В качестве бонуса рассмотрим, как использовать excel для лотереи. Для начала нужно выгрузить базу данных участников в программу любым известным способом, а затем провести розыгрыш. Формула будет выглядеть следующим образом:
Специальный инструмент
Генератор случайных чисел можно найти в пакете анализа данных, который активируется через надстройки Excel. Чтобы воспользоваться этой функцией, необходимо нажать отдельную кнопку во вкладке Данные на Панели инструментов и из списка выбрать нужную строку.
Откроется окно настроек, в котором задаете число переменных и количество случайных чисел, затем указываете дополнительные параметры и место вывода полученных данных. Для примера используем нормальное распределение, которое можно выбрать из отдельного списка.
В результате получилось следующее:
Этот метод намного проще, чем описанные выше способы. Однако он не позволяет накладывать дополнительные условия, поэтому генерация не всегда может удовлетворять требованиям пользователя.
Как видите, в редакторе существует несколько способов задания произвольного числа. Если нужны какие-то ограничения, то используйте встроенные функции, а если важно наличие случайного значения, то генератор из анализа данных подойдет лучше.
Функция случайного числа в Excel
- Функция СЛЧИС возвращает случайное равномерно распределенное вещественное число. Оно будет меньше 1, больше или равно 0.
- Функция СЛУЧМЕЖДУ возвращает случайное целое число.
Выборка случайных чисел с помощью СЛЧИС
Данная функция аргументов не требует (СЛЧИС()).
Чтобы сгенерировать случайное вещественное число в диапазоне от 1 до 5, например, применяем следующую формулу: =СЛЧИС()*(5-1)+1.
Возвращаемое случайное число распределено равномерно на интервале [1,10].
При каждом вычислении листа или при изменении значения в любой ячейке листа возвращается новое случайное число. Если нужно сохранить сгенерированную совокупность, можно заменить формулу на ее значение.
- Щелкаем по ячейке со случайным числом.
- В строке формул выделяем формулу.
- Нажимаем F9. И ВВОД.
Проверим равномерность распределения случайных чисел из первой выборки с помощью гистограммы распределения.
-
Сформируем «карманы». Диапазоны, в пределах которых будут находиться значения. Первый такой диапазон – 0-0,1. Для следующих – формула =C2+$C$2.
Диапазон вертикальных значений – частота. Горизонтальных – «карманы».
Как сделать генератор чисел в экселе. Генератор случайных чисел в Excel
В Excel есть функция нахождения случайных чисел =СЛЧИС(). Возможность же найти случайное число в Excel, важная составляющая планирования или анализа, т.к. вы можете спрогнозировать результаты вашей модели на большом количестве данных или просто найти одно рандомное число для проверки своей формулы или опыта.
Чаще всего эта функция применяется для получения большого количества случайных чисел. Т.е. 2-3 числа всегда можно придумать самому, для большого количества проще всего применить функцию.
В большинстве языков программирования подобная функция известная как Random (от англ. случайный), поэтому часто можно встретить обрусевшее выражение «в рандомном порядке» и т.п.
В английском Excel функция СЛЧИС числится как RAND
Начнем с описания функции =СЛЧИС(). Для этой функции не нужны аргументы.
А работает она следующим образом — выводит случайное число от 0 до 1. Число будет вещественное, т.е. по большому счету любое, как правило это десятичные дроби, например 0,0006.
При каждом сохранении число будет меняться, чтобы обновить число без обновления нажмите F9.
Случайное число в определенном диапазоне. Функция
Что делать если вам не подходит имеющийся диапазон случайных чисел, и нужно набор случайных чисел от 20 до 135. Как это можно сделать?
Нужно записать следующую формулу.
Т.е. к 20 будет случайным образом прибавляться число от 0 до 115, что позволит получать каждый раз число в нужном диапазоне (см. первую картинку).
- Кстати, если вам необходимо найти целое число в таком же диапазоне, для этого существует специальная функция, где мы указываем верхнюю и нижнюю границу значений
- СЛУЧМЕЖДУ(20;135)
- Просто, но очень удобно!
- Если нужно множество ячеек случайных чисел просто протяните ячейку ниже.
Случайное число с определенным шагом
Если нам нужно получить рандомное число с шагом, к примеру пять, то мы воспользуемся одной из . Это будет ОКРВВЕРХ()
Где мы находим случайное число от 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) используйте следующую формулу СЛУЧМЕЖДУ:
Генератор случайных чисел в Excel – Генерация случайных чисел в заданном диапазоне
Функция СЛУЧМЕЖДУ в Excel может создавать как положительные, так и отрицательные числа случайные числа. Например, чтобы получить список случайных чисел от -10 до 10, введите следующую формулу на листе:
Функция СЛУЧМЕЖДУ доступна в следующих версиях: Excel 2016, Excel 2013, Excel 2010 и Excel 2007.
В более ранней версии Excel 2003, вы можете использовать формулу СЛЧИС , рассмотренную выше.
Далее в этой статье вы найдете еще несколько примеров формул, демонстрирующих, как использовать функцию СЛУЧМЕЖДУ для создания генератора случайных чисел, отличных от целых.
Создание случайных чисел с заданным количеством знаков после запятой
Хотя функция СЛУЧМЕЖДУ в Excel была предназначена для генерации случайных целых чисел, вы можете использовать ее для генерации случайных десятичных чисел с таким количеством десятичных знаков, сколько хотите.
Например, чтобы получить список чисел с одним десятичным знаком, вы умножаете нижнее и верхнее значения на 10, а затем делите возвращаемое значение на 10:
= СЛУЧМЕЖДУ(нижняя граница*10; верхняя граница*10)/10
Например, чтобы получить список чисел с одним десятичным знаком, вы умножаете нижнее и верхнее значения на 10, а затем делите возвращаемое значение на 10:
Следующая формула СЛУЧМЕЖДУ возвращает случайные десятичные числа от 1 до 50:
Генератор случайных чисел в Excel – Генерация случайных чисел с одним знаком после запятой
Аналогичным образом, чтобы сделать генератор случайных чисел от 1 до 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 (чтобы ввести ее как формулу массива!) и скопируйте формулу вниз на требуемое количество ячеек:
Читайте также: