
我也假定A列有50个零件,是从A1到A50,在B列显示随机选取的20个。
我要增加C、D、E三个辅助列,用以显示随机抽取的过程。这个抽取过程综合应用了Excel的公式计算和VBA计算方法,能保证不重复地在50个零件中随机地抽取20个零件。
在D1单元格输入公式:
=COUNTBLANK(C$1:C1)
下拉到D50
D列列出了C列从第一行起到C列与D列同一行的单元格之间的空格数,也就是D列对C列的空单元格从1开始进行连续编号。
VBA程序先在1到50连续的50个数间随机抽取一个数,例如抽到39,则在C39单元格做记号1,并在E1单元格记录39这个数。
VBA程序再在1到49连续的49个数间随机抽取一个数,例如抽到17,则在D列查找第一次出现17的单元格,即C列第17个空白单元格C17所在行,C17单元格做记号1,并在E2单元格记录17这个数。
VBA程序再在1到48连续的48个数间随机抽取一个数,例如抽到4,则在D列查找第一次出现4的单元格,即C列第4个空白单元格C4所在行,C4单元格做记号1,并在E3单元格记录4这个数。
VBA程序再在1到47连续的47个数间随机抽取一个数,例如抽到7,则在D列查找第一次出现7的单元格,即C列第7个空白单元格C8所在行,C8单元格做记号1,并在E4单元格记录8这个数。
如此进行下去,直到在C列记录下20个1,E列记录了C列中1的所在行。
至此VBA程序完成了辅助列C列和E列的制作。
在B1单元格输入公式:
=INDEX(A:A,E1)
下拉至B20
B1:B20记录了从A1:A50随机抽取的20个不重复的零件。
其中的VBA程序是:
Range("C:C")ClearContents
For i1 = 1 To 20
i = ApplicationWorksheetFunctionRandBetween(1, 51 - i1)
i3 = ApplicationWorksheetFunctionMatch(i, Range("D:D"), 0)
Range("C" & i3)Value = 1
Range("E" & i1) = i3
Next i1
以上就是关于如何在ExcelA列中(A列是汽车零件)随机选取20个全部的内容,包括:如何在ExcelA列中(A列是汽车零件)随机选取20个、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)