Excel表格数据很多,我想从近2000组数据中随机抽样选100组,该怎么做? 我纯新手,求简单方法。
2个回答
展开全部
比如,如果您的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 GoTo rerand
r = r + 1
Cells(r, 1) = x
xx(x) = r
Next
End Sub
我们可以使用的函数的方法和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 GoTo rerand
r = r + 1
Cells(r, 1) = x
xx(x) = r
Next
End Sub
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询