MS Excel: уникальный генератор случайных чисел в диапазоне

27677

Я искал похожий вопрос, но не смог его найти ..

Я хочу создать 10 групп из чисел в диапазоне от 1 до 60 (включая обе), причем каждая группа содержит случайные и неповторяющиеся числа. Как я могу сделать это в Excel?

0
Это может быть полезно: http://stackoverflow.com/q/5753063/657668 http://superuser.com/q/277386/76571 Excellll 10 лет назад 0

2 ответа на вопрос

1
nixda

How to use it

  1. Open Excel & VBA editor (Alt+F11)
  2. Insert the code below under Sheet1
  3. Go back to Excel and select your desired range to fill with random & non-repeating numbers
  4. Execute the macro (Alt+F8)

Sub randomNumbers() Low = Application.InputBox("Enter first valid value", Type:=1) High = Application.InputBox("Enter last valid value", Type:=1) Selection.Clear For Each cell In Selection.Cells If WorksheetFunction.CountA(Selection) = (High - Low + 1) Then Exit For Do rndNumber = Int((High - Low + 1) * Rnd() + Low) Loop Until Selection.Cells.Find(rndNumber, LookIn:=xlValues, lookat:=xlWhole) Is Nothing cell.Value = rndNumber Next End Sub 

Excel file to proof

I love those small and simple solutions so much

Возможно это возможно только с функциями Excel: `= RANDBETWEEN (1,60)` и, возможно, функция массива? Но я понятия не имею, как проверить наличие дубликатов. nixda 10 лет назад 0
http://superuser.com/q/277386/76571 Excellll 10 лет назад 1
Ну, как вы уже упоминали в комментариях, есть небольшой недостаток из-за `MOD`. Но в любом случае это хорошее решение. nixda 10 лет назад 0
Я попробовал вышеупомянутые шаги, но во время выполнения, 9 ячеек не заполнены, и затем это терпит крах .. 10 лет назад 0
Я выбрал 6 х 10 ячеек (строк или столбцов), мое первое значение равно 1, а конечное значение равно 60. От A1 до F10 10 лет назад 0
Ваша рабочая тетрадь показывает безупречное исполнение, но я выполнил те же действия, что и вы. Какие изменения вы сделали? 10 лет назад 0
Вы можете нажать «отредактировано x час назад» под моим постом, чтобы увидеть историю. Я изменил `Selection.Cells.Find (rndNumber)` на `Selection.Cells.Find (rndNumber, LookIn: = xlValues, lookat: = xlWhole)`. Я думаю, у вас все работает сейчас? nixda 10 лет назад 0
Большое спасибо! Не могли бы вы предложить ссылки или книги, где я могу изучить скрипты VBA для Excel прямо с основ? Я хочу научиться этому, но не знаю, с чего начать. 10 лет назад 0
Запустите [здесь] (http://msdn.microsoft.com/en-us/library/office/ee814737 (v = office.14) .aspx) для руководства для начинающих. Используйте [this] (http://www.java2s.com/Code/VBA-Excel-Access-Word/CatalogVBA-Excel-Access-Word.htm), если вам нужно больше информации для конкретной функции. nixda 10 лет назад 0
1
Grubbis

I thought I had an answer, but this was a dead end (but quite fun) and I don't know how to remove it. My need is to do bingo-sheets with random setups.

Make a column A4:A63 with the numbers 1 to 60. Enter a fairly big prime number less than 60 cell B1. For example '47`.

In B2 enter

=RANDBETWEEN(1;59)

In rows B4:B63 fill with

=MOD(((A4+B$2)*B$1);60)+1 =MOD(((A5+B$2)*B$1);60)+1 ... =MOD(((A63+B$2)*B$1);60)+1 

This will make a fairly random sequence. B$2 will only shift the sequence.

Похожие вопросы