Excel随机抽样的简单方法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Excel随机抽样的简单方法

比如,如果您的Excel有1000人,想从这1000个人当中抽出100个人来做样品,那么,如何做呢?当然,前提条件是,抽样出来的这100个人,不是重复的人。我们可以使用的函数的方法和VBA的方法来解决上述或类似的难题。

说白了,所谓的抽样,无非就是取随机数的问题。

一、使用函数实现抽样

如不懂VBA,可使用如下的蓄意循环运算办法, 但理论上不是100%会成功的, 而且数字太多, 比较费时。

A1输入 =IF(SUM($B$1:$B$100)<>100,INT(RAND()*1000+1),A1)

B1 输入 =COUNTIF($A$1:$A4100,A1)

将A1:B1 下拖至 A100:B100

然后执行菜单操作:工具→选项→计算→重复运算;打勾→最高次数 10000次→确定,A1:B100 便会不停运算。

如运算 10000次后, 尚未成功, 可再按 F9, 再执行运算, 直至成功;如成功, 应即马上将

A1:A100 做黏贴值, B1:B100 清除内容, 及将重复运算脱勾, 完成。

二、使用VBA抽样的方法

条件为:1 至 1000内, 选 100个不重复的随机数(要正整数)。

由于需要不重复的变量, 所以必须要经循环程序去判断。

最简单的方法, 是执行宏, 可用如下的代码, 100个不重复的变量便马上显示在A1:A100 Sub 我的抽样()

Dim xx(1 To 1000) As Integer

For t = 1 To 100

rerand:

x = Int(Rnd() * 1000 + 1)

If xx(x) > 0 Then GoTorerand

r = r + 1

Cells(r, 1) = x

xx(x) = r

Next

End Sub

相关文档
最新文档