返回首页
当前位置: 主页 > Excel教程 > Excel2007教程 >

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

时间:2012-06-19 20:26来源:Office教程学习网 www.office68.com编辑:麦田守望者

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

方法一:RAND函数+排序

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

=RAND()

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

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

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键即可。这个方法适合于不改变工作表结构的情况。

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

方法三: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循环,速度较快,特别适合于数据量较大的情况

------分隔线----------------------------
标签(Tag):excel excel2007 excel2010 excel2003 excel技巧 excel教程 excel实例教程 excel2010技巧
------分隔线----------------------------
推荐内容
猜你感兴趣