请问如何 用excel 随机选出20个工作日

作者&投稿:攸侮 (若有异议请与网页底部的电邮联系)
请教下 EXCEL 在一列数据中随机挑选20项 该如何操作(公式也可以)~

在一空白列对应的区域输入公式:
=RAND()
下拉填充

然后在任意位置输入公式:
=INDEX(A$1:A$100,MATCH(SMALL(B$1:B$100,ROW(A1)),B$1:B$100,))
下拉填充19行
A1:A100为要随机挑选数据的区域
B1:B100为RAND()函数生成的数据区域

我也假定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 = Application.WorksheetFunction.RandBetween(1, 51 - i1)
i3 = Application.WorksheetFunction.Match(i, Range("D:D"), 0)
Range("C" & i3).Value = 1
Range("E" & i1) = i3
Next i1

可以编程一步完成,按ALT+F11组合键,打开VB窗口,执行"插入"-"模块",复制下面代码进去,按F5运行"Demo"程序即得到结果。

Sub Demo()
Dim Arr() As Date, Brr() As Variant
Dim MyDate As Date
Dim i As Long, j As Long
Dim Cell As Range

MyDate = #1/1/2017#
Do Until MyDate > #7/1/2019#
If Application.Weekday(MyDate) > 1 And Application.Weekday(MyDate) < 7 Then
ReDim Preserve Arr(i)
Arr(i) = MyDate
i = i + 1
End If
MyDate = MyDate + 1
Loop
ReDim Brr(0 To UBound(Arr))
For i = 0 To UBound(Arr)
Brr(i) = i
Next
Call Fisher_Yates(Brr)

Set Cell = Range("A1")
For j = 1 To 20
Cell = Arr(Brr(j - 1))
Set Cell = Cell.Offset(1, 0)
Next
End Sub
Function Fisher_Yates(Arr)
Dim i As Integer, k As Integer, t
Dim L As Integer, U As Integer
L = LBound(Arr)
U = UBound(Arr)
For i = U To L Step -1
k = Application.RandBetween(L, i)
t = Arr(k)
Arr(k) = Arr(i)
Arr(i) = t
Next
Fisher_Yates = Arr
End Function

程序运行结果图




甘肃省17679369290: EXCEL如何从多个单元格,随机选一? -
闻婵复方: 可以通过公式“=INDEX($A$1:$F$1,RANDBETWEEN(1,6))”实现,具体的方法如下:1、打开电脑中的一个excel文档,然后在A1~F1单元格中分别输入数值,如下: 2、然后在G1单元格中输入公式“=INDEX($A$1:$F$1,RANDBETWEEN(1,6))”: 3、按回车键确认,G1单元格即可在A1~F1中随机选出一个数值进行显示: 4、当再次点击一下公式进行回车,因这是随机选择,这次显示的数据又不一样了,如下:

甘肃省17679369290: 在excel中怎么进行随机筛选? -
闻婵复方: 增加一列,使用公式=RAND()获得随机数据,每次针对此列进行筛选的结果就是随机的. 可以使用【数值筛选】前10项,如下图:Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件.直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使Excel成为最流行的个人计算机数据处理软件. 在1993年,作为Microsoft Office的组件发布了5.0版之后,Excel就开始成为所适用操作平台上的电子制表软件的霸主.

甘肃省17679369290: 如何在excel中随机选取数据 -
闻婵复方: 1、文件-选项-加载项,转到--勾选数据分析工具: 2、在数据分析工具里面选择抽样,设置抽样数为500,随机抽取就可以了:

甘肃省17679369290: 怎么用excel电子表格从录入的数据中随机选出一个 -
闻婵复方: 当然可以,假如你有一列数据是人名,你想从中随机找一个,这样做:在人名前面插入一列添加序号,数据区域就成了A1:B20,然后在你要显示取出的人名位置输入:[=VLOOKUP(ROUND((RAND()*19+1),0),$A$1:$B$20,2,0)] 选一个空的单元格,连续按DELDTE键就可看到随机取出的结果了

甘肃省17679369290: excel如何在给定的一组数字中,随机选择出若干个不重复的数? -
闻婵复方: A1中空着,A2中输入 =SMALL(IF(COUNTIF(A$1:A1,{1,3,7,11,23,34,44,56,70,89,91,97})=0,{1,3,7,11,23,34,44,56,70,89,91,97}),INT(RAND()*(13-ROW(A1)))+1) 同时按下CTRL+SHIFT+回车,输入数组公式,下拉二格. 不断按下F9,查看效果. 或者直接下拉11格,再按F9,看看是否出来12个数.

甘肃省17679369290: EXCEL 取随机数 -
闻婵复方: 原发布者:x709902018EXCEL中随机产生数据1、在“工具/加载宏”,勾选“分析工具库”,确定,即可在“工具”下拉菜单见到“数据分析/随机数发生器”工具.2、如果“加载宏”中没有“分析工具库”选项,是由于对EXCEL未进行完全安装所致;请使用原Office安装盘,对EXCEL进行完全安装即可.具体步骤如下:步骤一:在“工具/加载宏”,勾选“分析工具库”,确定.步骤二:在“工具”下拉菜单见到“数据分析/随机数发生器”工具里面就有了例如:已知数值的均值210和标准差12求助怎么样能够用EXCEL得出200个随机数字符合均值和标准差

甘肃省17679369290: EXCEL中如何选择随机数 -
闻婵复方: 假设数据A1:A100,要从中随机不重复选择5个内容出来,在B1输入公式向下复制: =RAND()然后C1输入公式向下复制5格: =INDEX(A:A,MATCH(LARGE(B:B,ROW(1:1)),B:B,0))欢迎关注我的新浪微博@Excel微力

甘肃省17679369290: 在EXCEL里~如何使两个相对应的数据随机出现
闻婵复方: A1输1,B1输10 A2输2,B2输11 A3输3,B3输12 C1输=RANDBETWEEN(1,3) D1输=VLOOKUP(C1,A:B,2,0) C1就是随机出现1,2,3 D1显示的就是对应的10,11,12

甘肃省17679369290: 如何在Excel中随机产生两个随机整数,并使这两个数的和小于10 -
闻婵复方: 第一个随机数产生在A1,输入公式 =int(rand()*9)+1 第二个随机数产生在B1,改用公式 =10-A1

甘肃省17679369290: Excel中如何选择随机选择两个范围的数字 -
闻婵复方: RAND()函数能产生0到1之间的随机数INT()函数能将其化为整数例如取2到5之间的数字(包括2和5) =INT(RAND()*3+2)

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网