excel里有N行数据,我现在要随机取1000行不重复的数据,请问VBA宏怎么写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel里有N行数据,我现在要随机取1000行不重复的数据,请问VBA宏怎么写?相关的知识,希望对你有一定的参考价值。

excel里有N行数据,分为5列,第一列为电话号码,后面几列都是对应的通话记录,我现在需要把号码随机排序,取其中1000个号码及其对应的通话记录

我给你个思路吧!
首先,1000行数据不是小数目,也就是说你的数据量应该在上万行吧,这样的文件本身就很大,你要完全随便乱选还不重复,这样你就要做1000个随机数字,还得去排除重复值,运算量很大,不现实
因此,我建议你换位连续的1000个数字,只要你把开始的第一个的值设置好,照样可以随机了所有的数字,区别就在于他是有规律的,是连续的,但是这样只需要做一个随机数就可以搞定,简化了程序,也能达到你的要求!追问

我想用宏做出来,最好可以实现1000行数据可以更改,比如下次需要取3000行,我只改下数字就行了,我对excel不懂,求指导!

参考技术A 是不是要用宏哦 我只会宏方法了

等待后面回答追问

我想用宏做出来,最好可以实现1000行数据可以更改,比如下次需要取3000行,我只改下数字就行了,我对excel不懂,求指导!

追答

领取一列

=rand() 随机数

对这一列复制黏贴值

对这一列排序

取前面1000行就好了

参考技术B 如果你电脑装了SQL server
2005 我可以帮你搞定

excel 输出指定行数据

现在有一万多行的数据,我有100个随机生成的数据a,b,c,d.......

现在要对应的输出第a,b,c,d行的数据另外成表
求大神指教
a,b,c,d等是行数

比如说a=22,就是说要输出第22行的数据
麻烦大牛们了

  1,打开源数据文件,把首行中的对应的数据,复制行到空白位置。

  2、选中J2单元格,单击编辑栏中的"插入函数“,如图所示。

  3、弹出”插入函数“对话框,设置其类别为”逻辑“,并选择列表框中的IF选项。然后确定。

  4、在弹出的”函数参数“对话框中,

  设置Logical_test参数为”I2=“”,将Value_if_true设置为“”,也就是空白内容。

  最重要的一步来了:

  将Value_if_false参数框中输入“VLOOKUP(I2,A2:B2846,2),然后确定。

  这个步骤是什么意思呢。就是用if函数判定I2单元格中的内容是不是不是空白。

  若是空白,那么J2单元格也是空白。

  若不是空白,就执行VLOOKUP函数。在A2:B2846区域中(因为源数据不改动,所以这里用的是相对引用)查找I2单元中的内容,找到后,在J2单元格中返回所找到的内容所在的行的第二列中的数据。

  5、经过第4步后,在I2单元中输入任意证券代码就会在J2单元中显示其行业了。那么,现在需要的是在I列粘贴进去我们需要的证券代码后,其后会出现源数据所对应的第一行中的内容。所以要接着第6步。

  6、选中J2单元格,注意是J2,不是I2哦.(I2是我们输入证券代码的地方),鼠标移动到单元格右下角,出现十字光标时,按住鼠标左键向右拖动到O2单元格。如图

  7、这个时候就会发现原来源数据中的C2-G2单元格中的内容就会自动填充到K2-O2单元格中。这个时候,如果我们需要的数据是按源数据中的数据从上到下排列的,就可以不用修改了。直接重复第6步中的方法,把J2-O2每个单元格下拉填充就完成了。如图示,先把需要的数据列复制到I列中,然后依次下拉填充。

  8、也就是搜索从A3到B2487区域中的内容。没有包含A2,所以我们输入000002在源数据中找不到。所以使用这个方法前,要先对需要的数据按源数据进行排序。不然,是不准确的。

  

参考技术A 比如你原数据在A、B两列,A列是“姓名”,B列是“年龄”,假设你现在在D列上随机生成了100个姓名,希望在E列上能自动引用这些姓名对应B列上的年龄。方法:在E1输入公式:
=vlookup(d1,a:b,2,)
将公式向下拉填充复制就可实现。

补充:假设你数据在A1:A10000,现在在C列随机生成100个行数,希望调用A列上对应这些数字行上的内容。可在D1输入公式:
=index(a:a,c1)
将公式向下拉填充复制就可以了。本回答被提问者采纳
参考技术B 1、比如原数据在A、B两列,A列是“姓名”,B列是“年龄”,假设现在在D列上随机生成了100个姓名,希望在E列上能自动引用这些姓名对应B列上的年龄。方法:在E1输入公式:
=vlookup(d1,a:b,2,)将公式向下拉填充复制就可实现。
2、补充:假设数据在A1:A10000,现在在C列随机生成100个行数,希望调用A列上对应这些数字行上的内容。可在D1输入公式:=index(a:a,c1),将公式向下拉填充复制就可以了。
参考技术C 你好:如果截图,并配上行列标,会比较好解决。
如果有行号,那更好办,可以用这个公式;
如数据要sheet2的A到F,你自动生成的行号在a1,可以在sheet1的b1输入:=index(sheet2!$a:$f,$a1,coulumn(a1),1)然后公式右拉,下拉。
实在不行,你可以另存一个,删掉敏感信息,传一个表过来,好分析。(759534733@qq.com)
参考技术D a,b,c,d是行数吗?

用vbs吧 行复制就可以了了

以上是关于excel里有N行数据,我现在要随机取1000行不重复的数据,请问VBA宏怎么写?的主要内容,如果未能解决你的问题,请参考以下文章

从大表里随机取若干行的效率问题

excel 小技巧

Matlab struct数据提取

excel 输出指定行数据

hive分组取随机数

HBase:原子“检查行不存在并创建”操作