Excel-从更大的数据集中选择数字

Excel-从更大的数据集中选择数字,excel,Excel,我有一个关于excel的问题(希望在正确的论坛上) 我在excel中有一个100个数字的数据,我想随机选择30个数字,但同一个数字不会再次被选择(因此,通过删除已选择的数字) 而我却不知道该怎么做? 我尝试了RANDBETWEEN(1;100)并复制了30次,但它可以重复相同的数字 你能帮我做这件事吗? 非常感谢。 有没有一种方法可以用worksheat公式来代替其他一些forun问题所建议的VBA ….以下是一些Excel VBA代码,可以实现这一功能 Sub RandomUniquiNu

我有一个关于excel的问题(希望在正确的论坛上)

我在excel中有一个100个数字的数据,我想随机选择30个数字,但同一个数字不会再次被选择(因此,通过删除已选择的数字)

而我却不知道该怎么做? 我尝试了RANDBETWEEN(1;100)并复制了30次,但它可以重复相同的数字

你能帮我做这件事吗? 非常感谢。

有没有一种方法可以用worksheat公式来代替其他一些forun问题所建议的VBA


….

以下是一些Excel VBA代码,可以实现这一功能

 Sub RandomUniquiNumber()

      Dim NumberArray As Variant
      ReDim NumberArray(100)

      Dim NumberArrayPosition As Long

      For NumberArrayPosition = 1 To 100

           NumberArray(NumberArrayPosition) = NumberArrayPosition

      Next NumberArrayPosition

      Dim Result As Variant
      ReDim Result(30)
      Dim ResultPositionNumber As Long
      Dim ResultString As String
      Dim RandomNumber As String
      Dim InStrResult As Long

      ResultString = ""

      For ResultPositionNumber = 1 To 30

           RandomNumber = Application.WorksheetFunction.RandBetween(1, 100)
           InStrResult = InStr(1, ResultString, RandomNumber)
           If InStrResult = 0 Then

                ResultString = ResultString & " " & RandomNumber

           Else

                Do While InStrResult > 1

                      RandomNumber = Application.WorksheetFunction.RandBetween(1, 100)
                      InStrResult = InStr(1, ResultString, RandomNumber)

                 Loop

                ResultString = ResultString & " " & RandomNumber

           End If

           'Result in an Array
           Result(ResultPositionNumber) = RandomNumber


      Next ResultPositionNumber

      'If you want the result as an Array Use Result(ResultPositionNumber)
      'If you want the result as an Array Use ResultString


 End Sub
试试这个变体

在A列中,按顺序输入100个数字。 对于A列中的每个数字,在B列中放置=RAND()

然后使用列B对数组进行排序

在A列中选择前30位数字。

尝试此链接-