在EXCEL中如何用VB做一个随机点名系统 50
向大虾请教:问题背景:想做一个随机点名系统,但抽查人员必须先选定部门,比如ADM(行政部),ENG(技术部),QAD(质保部)。选定后,即在EXCEL的某个单元格(如A8...
向大虾请教:
问题背景:想做一个随机点名系统,但抽查人员必须先选定部门,比如ADM(行政部),ENG(技术部),QAD(质保部)。选定后,即在EXCEL的某个单元格(如A8单元格),显示随机抽取的名字。
问题:想用excel自带的vlookup命令,但这个命令没法识别你首先选的是哪个部门,所以也就无法从选出正确的人员来,例如,让它选ADM,它却从总表中任意选择的。所以才请教大虾。
若能解决,愿将本人全部50分送出,谢谢! 展开
问题背景:想做一个随机点名系统,但抽查人员必须先选定部门,比如ADM(行政部),ENG(技术部),QAD(质保部)。选定后,即在EXCEL的某个单元格(如A8单元格),显示随机抽取的名字。
问题:想用excel自带的vlookup命令,但这个命令没法识别你首先选的是哪个部门,所以也就无法从选出正确的人员来,例如,让它选ADM,它却从总表中任意选择的。所以才请教大虾。
若能解决,愿将本人全部50分送出,谢谢! 展开
4个回答
展开全部
我为你写了一个自定义函数,请试下。代码如下:
Function Myrand(PartAre As Range, Part As String) As String
'PartAre 部门所在区域;
'Part 你期望抽查的部门,可以是字符,也可以是单元格
'eg: =Myrand($A$1:$A$8,"ENG") 或者 =Myrand($A$1:$A$8,A3)
partnum = 0
For Each m In PartAre
tmpStr = m.Text
If UCase(tmpStr) = UCase(Part) Then partnum = partnum + 1
Next m
randnum = Int(partnum * Rnd()) + 1
partnum = 0
For Each m In PartAre
tmpStr = m.Text
If UCase(tmpStr) = UCase(Part) Then
partnum = partnum + 1
If partnum = randnum Then Exit For
End If
Next m
Myrand = Cells(m.Row(), m.Column() + 1).Text
End Function
用法:
部门在A1~A8,人员在B1~B8(函数自动从部门后一列取人员),则在其他单元格中输入公式:
=Myrand($A$1:$A$8,"ENG") 或者 =Myrand($A$1:$A$8,A3)
注:A3中的所填写的内容为 ENG
不清楚可以Hi我。
GoodLuck!
Function Myrand(PartAre As Range, Part As String) As String
'PartAre 部门所在区域;
'Part 你期望抽查的部门,可以是字符,也可以是单元格
'eg: =Myrand($A$1:$A$8,"ENG") 或者 =Myrand($A$1:$A$8,A3)
partnum = 0
For Each m In PartAre
tmpStr = m.Text
If UCase(tmpStr) = UCase(Part) Then partnum = partnum + 1
Next m
randnum = Int(partnum * Rnd()) + 1
partnum = 0
For Each m In PartAre
tmpStr = m.Text
If UCase(tmpStr) = UCase(Part) Then
partnum = partnum + 1
If partnum = randnum Then Exit For
End If
Next m
Myrand = Cells(m.Row(), m.Column() + 1).Text
End Function
用法:
部门在A1~A8,人员在B1~B8(函数自动从部门后一列取人员),则在其他单元格中输入公式:
=Myrand($A$1:$A$8,"ENG") 或者 =Myrand($A$1:$A$8,A3)
注:A3中的所填写的内容为 ENG
不清楚可以Hi我。
GoodLuck!
展开全部
用MATCH,INDEX,RAND等函数可以解决,关键是你的人员表在哪个表,是这样的数据结构,部门和姓名在哪列,指定的部门在哪个单元格,你不把问题描清楚,没办法帮你写公式。HI我一下吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
向大虾请教:
问题背景:想做一个随机点名系统,但抽查人员必须先选定部门,比如ADM(行政部),ENG(技术部),QAD(质保部)。选定后,即在EXCEL的某个单元格(如A8单元格),显示随机抽取的名字。
问题:想用excel自带的vlookup命令,但这个命令没法识别你首先选的是哪个部门,所以也就无法从选出正确的人员来,例如,让它选ADM,它却从总表中任意选择的。所以才请教大虾。
若能解决,愿将本人全部50分送出,谢谢!
提问者:
问题背景:想做一个随机点名系统,但抽查人员必须先选定部门,比如ADM(行政部),ENG(技术部),QAD(质保部)。选定后,即在EXCEL的某个单元格(如A8单元格),显示随机抽取的名字。
问题:想用excel自带的vlookup命令,但这个命令没法识别你首先选的是哪个部门,所以也就无法从选出正确的人员来,例如,让它选ADM,它却从总表中任意选择的。所以才请教大虾。
若能解决,愿将本人全部50分送出,谢谢!
提问者:
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用vlookup可以的,看你怎么用了~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询