Случайное число в Excel от 1 до 10, пока не будут выбраны все числа - PullRequest
0 голосов
/ 02 августа 2020

Я хочу использовать Excel для генерации случайных чисел от 1 до 10, а затем подсчитывать, сколько чисел было сгенерировано для каждого числа, которое будет сгенерировано.

Я знаю, как генерировать случайные числа, т.е. = RANDBETWEEN (1 , 10)

, а затем просто потяните за угол.

Но вручную go проверять список, когда все числа были сгенерированы, требует небольшой работы.

Есть ли более простой / автоматический c способ сделать это?

Ответы [ 2 ]

3 голосов
/ 02 августа 2020

Предполагая, что у вас есть заголовок, вы можете использовать:

введите описание изображения здесь

Формула в A2:

=IF(SUM(--ISNUMBER(MATCH(ROW($1:$10),A$1:A1,0)))=10,"Done: "&ROW()-2&" numbers made",RANDBETWEEN(1,10))

Обратите внимание, что это формула массива, и в зависимости от версии Excel вам необходимо принять ее через Ctrl Shift Введите .

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

0 голосов
/ 03 августа 2020

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

=MATCH(10,MMULT(SIGN(COUNTIF(OFFSET(A1,0,0,ROW(1:100)),COLUMN(A:J))),ROW(1:10)^0),0)

при условии, что имеется до 100 чисел.

Необходимо ввести как формулу массива, используя Ctrl Shift Введите в менее поздних версиях Excel.

Идея состоит в том, чтобы использовать Offset для выбора увеличивающегося количества строк из диапазона, затем использовать Count для проверки наличия каждого числа и Mmult для получения суммы различных чисел для каждого диапазона. Использование смещения изменчивой функции обычно не рекомендуется, но поскольку лист уже использовал бы другую изменчивую функцию, Randbetween, это может не сильно повлиять на производительность.

введите описание изображения здесь

...