怎样用excel抽人名
① 如何在excel中把不同部门的人各抽取50%人员姓名提取出来
把下列代码粘贴到模块。在工作表建立个按钮控件,方便使用。
Sub 随机提取部分和姓名()
Dim dic As Object, ran As Range, e_row As Long, Arr()
Set dic = CreateObject("scripting.dictionary")
With ThisWorkbook.ActiveSheet
.Range(Cells(2, 4), Cells(Cells.Rows.Count, 7)).ClearContents
e_row = .Range("A" & Cells.Rows.Count).End(xlUp).Row
For Each ran In Range("A2:A" & e_row)
If ran.Value <> "" Then dic(ran.Value) = ""
Next ran
s = -1
For Each xkey In dic.keys
For i = 2 To e_row
If Cells(i, 1).Value = xkey Then
s = s + 1
ReDim Preserve Arr(1, s)
Arr(0, s) = Cells(i, 1)
Arr(1, s) = Cells(i, 2)
End If
Next i
s = 0
Dim Arr2(), arr3()
Randomize (Timer)
nrnd = Int(UBound(Arr, 2) / 2) '50%取整
ReDim Arr2(nrnd)
Dim RndNumber, temp(), j, k, Maxrec As Integer, bm As Long, xm As Long
Randomize (Timer)
Maxrec = UBound(Arr, 2)
k = 0
ReDim temp(nrnd)
'不重复的随机数
Do While k < nrnd
RndNumber = Int(Maxrec * Rnd) + 1
temp(k) = RndNumber
Arr2(k) = RndNumber
For j = 0 To k - 1
If temp(j) = RndNumber Then Exit For
Next j
If j = k Then k = j + 1
Loop
ReDim arr3(1, nrnd)
For g = 0 To nrnd
arr3(0, g) = Arr(0, Arr2(g))
arr3(1, g) = Arr(1, Arr2(g))
Next g
bm = .Cells(Cells.Rows.Count, 4).End(xlUp).Row + 1
.Cells(bm, 4).Resize(UBound(arr3, 2) + 1, 2) = Application.Transpose(arr3)
Dim h&, f&, arr5(), y&, Bool As Boolean
y = 0
For h = 0 To UBound(Arr, 2)
Bool = False
For f = 0 To UBound(arr3, 2)
If Arr(1, h) = arr3(1, f) Then
Bool = True
Exit For
End If
Next f
If Bool = False Then
ReDim Preserve arr5(1, y)
arr5(0, y) = Arr(0, h)
arr5(1, y) = Arr(1, h)
y = y + 1
End If
Next h
xm = .Cells(Cells.Rows.Count, 6).End(xlUp).Row + 1
.Cells(xm, 6).Resize(UBound(arr5, 2) + 1, 2) = Application.Transpose(arr5)
ReDim Arr(1, 0)
ReDim Arr2(0)
ReDim arr3(1, 0)
ReDim arr5(1, 0)
Next xkey
End With
End Sub
② 如何在excel里面一行提取人名
是说在已经有的文章里面找到你想要的那一个名字吗,在你知道的情况下,在excel表格使用快捷键CTRL+h键,会弹出来一个用什么字替换什么字的对话框,里面有个设置形状格式,改为图案,颜色,让想要的文字替换为这个文字的另一种颜色就行,很轻易的就能看出来
③ 怎样用excel制作抽奖姓名
公司每年年终都会搞抽奖活动,随机从参会员工名单中抽取若干名员工发放年终实物大奖,身边没有摇奖机情况下,大家可以试着在EXCEL内通过公式来制作一个抽奖器,制作方法挺简单的,大家可以参考本经验制作,具体操作方法如下
注意事项
各版本EXCEL设置方法类似
按住F9键不放,保持多少时间放开可以自行规定,确保摇奖公平性
按F9键人与报数人分开,确保摇奖公正性
要同时产生多少个中奖人,只需在中奖人单元格列设置多少个公式
以上资料供参考
④ excel如何实现不重复抽人名
要完美实现可能需要编写宏,所以简单一点的办法:
1.在姓名列的后一列用如下公式=INDIRECT("A"&TEXT(RANDBETWEEN(1,15),"#")) 并下拉公式;
2.其中公式中A为姓名列的列号,1为姓名的开始行,15为姓名结束行,楼主依实际情况改变,
3.在新产生的列用EXCEL的删除重复项功能把重复项删掉并取前10个结果 (删除重复项前先把新列复制粘贴为文本)。
⑤ 怎么在excel中随机抽取人名
用INDEX配合随机函数 RAND/RANDBETWEEN
⑥ excel相关,有多个工作表名单,如何实现一键从每个工作表里随机抽取一个人名出来,每个工作表抽一个
操作:
分别在不同单元格用公式:=INDEX(Sheet2!A:A,RANDBETWEEN(1,5))
=INDEX(Sheet3!A:A,RANDBETWEEN(1,5))
然后按F9键刷新即可。
解释:
Randbetween(1,5),即在1到5之间取随机数;
Index,即按这个随机数取对应的值;
Sheet2,Sheet3,即对应说的多个工作表,可以按实际增加;
A:A列,即姓名列,可以根据实际情况换;
1,5, 即姓名列的开始和结束序号,根据实际情况改。
⑦ excel随机抽取名字
名字在A1到A20,B1中输入:
=indirect("a"&int(rand()*20+1))
即可
每次按下F9,B1中即可随机产生一个名字,如果你有多个名字,类推就行啦,把公式中的20改成你的最大行数即可
为何按下F9会变为0,谢谢
你的数据区包含空格,即A1到A20中含有空白单元格
任何疑义,hi我
⑧ 如何用EXCEL在一列指定的学号中,随机抽取一个并显示姓名
很简单啊,用VLOOKUP()粘贴函数即可。
VLOOKUP的作用是:
在表格或数值数组(学号列与姓名列构成数组)的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。
解决问题:
假设A列是学号,B列是姓名,数据区域为A1:B1000;随机抽出的学号在D1单元格。则在D2单元格中输入公式
=VLOOKUP($D$1,$A$1:$B$1000,2)
即可。
效果:随着D1单元格中的学号发生变化,在D2单元格中显示D1单元格学号所对应的姓名。
公式释义:在A1:B1000单元格区域的首列(A列)查找等于D1单元格中的数值,并返回该数值所在行的第2列(B列)的数值(也就是学号所对应的姓名了)。
注意:你所书写的公式RAND()871+58应该改成RAND()*(928-871)+871。
试试看!
查看原帖>>