MS Excel: уникальный генератор случайных чисел в диапазоне
Я искал похожий вопрос, но не смог его найти..
Я хочу создать 10 групп из чисел в диапазоне от 1 до 60 (включая обе), причем каждая группа содержит случайные и неповторяющиеся числа. Как я могу сделать это в Excel?
2 ответа
Решение
Как это использовать
- Откройте редактор Excel и VBA (Alt+F11)
- Вставьте код ниже под
Sheet1
- Вернитесь в Excel и выберите желаемый диапазон для заполнения случайными и неповторяющимися числами.
- Выполнить макрос (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
Я очень люблю эти маленькие и простые решения
Я думал, что у меня есть ответ, но это был тупик (но довольно забавный), и я не знаю, как его удалить. Мне нужно сделать бинго-листы со случайными настройками.
Сделайте столбец A4: A63 с номерами от 1 до 60. Введите довольно большое простое число, меньшее 60, ячейка B1. Например '47 `.
В B2 введите
= СЛУЧМЕЖДУ (1; 59)
В строках B4: B63 заполните
=MOD(((A4+B$2)*B$1);60)+1
=MOD(((A5+B$2)*B$1);60)+1
...
=MOD(((A63+B$2)*B$1);60)+1
Это сделает довольно случайную последовательность. B $ 2 только сместит последовательность.