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