怎样从excel一列中不重复地随机提取数据

有时需要在Excel中从某列随机提取一些数据,而且数据不能被重复提取。例如在进行随机抽样时,就需要进行随机地、不重复地提取操作。在Excel中,可以用多种方法实现从一列中随机不重复地提取数据,下面介绍其中的一些方法。假如要从A1:A100区域中随机挑出一些名单:

方法一:RAND函数+排序

1.在B1单元格中输入公式:

=RAND()

回车后向下填充到B2:B100区域。

2.按照B列进行排序。方法是选择B1:B100区域中的任意单元格,单击工具栏中的排序按钮“A→Z”,A列中的名单就会变成随机排列了,并且每次单击排序按钮都会产生一个新的随机序列。从A列中复制一些名单到其他区域即可。

方法二:RAND+RANK函数

先用上述方法在B1:B100区域填充RAND函数,然后在C1单元格中输入公式:

=INDEX($A$1:$A$100,RANK(B1,$B$1:$B$100))

再拖到填充柄向下填充,即可获得所需的随机数据。如果要获得新的随机数据,按F9键即可。这个方法适合于不改变工作表结构的情况。

方法三:VBA代码

还可以用下面的VBA代码来进行随机不重复地提取。假如要从某列(本例为A1:A1000)中随机不重复地提取100个数据,将其放到指定区域(本例为C1:C100)中:

Sub RandomSelect()
Dim TempArr, TheList(1 To 1000, 1 To 1) As Variant
TempArr = Range("a1:a1000")
For i = 1000 To 1 Step -1
j = Int(Rnd * i) + 1
TheList(i, 1) = TempArr(j, 1)
TempArr(j, 1) = TempArr(i, 1)
Next i
Range("c1:c100") = TheList
End Sub

上述代码中读取和写入数据时没有用For-Next循环,速度较快,特别适合于数据量较大的情况

office办公软件入门基础教程 » 怎样从excel一列中不重复地随机提取数据

本文链接:【怎样从excel一列中不重复地随机提取数据】https://www.officeapi.cn/8313.html

OFFICE,天天学一点,进步多一点

联系我们