MS Excel:范围内的唯一随机数生成器

MS Excel:范围内的唯一随机数生成器

我搜索了类似的问题,但找不到。

我想生成 10 组数字,范围从 1 到 60(包括 1 和 60),每组包含随机且不重复的数字。如何在 excel 中执行此操作?

答案1

如何使用它

  1. 打开 Excel 和 VBA 编辑器 ( Alt+ F11)
  2. 在下方插入代码Sheet1
  3. 返回 Excel 并选择您想要的范围用随机和非重复的数字填充
  4. 执行宏 ( 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 文件证明

我非常喜欢这些小而简单的解决方案

答案2

我以为我找到了答案,但这是一个死胡同(但很有趣),我不知道如何消除它。我需要的是做随机设置的宾果游戏表。

创建一个 A4:A63 列,其中包含 1 到 60 的数字。在 B1 单元格中输入一个小于 60 的相当大的质数。例如“47”。

在 B2 中输入

=RANDBETWEEN(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 只会移动序列。

相关内容