在EXCEL中如何用VB做一个随机点名系统 50

向大虾请教:问题背景:想做一个随机点名系统,但抽查人员必须先选定部门,比如ADM(行政部),ENG(技术部),QAD(质保部)。选定后,即在EXCEL的某个单元格(如A8... 向大虾请教:
问题背景:想做一个随机点名系统,但抽查人员必须先选定部门,比如ADM(行政部),ENG(技术部),QAD(质保部)。选定后,即在EXCEL的某个单元格(如A8单元格),显示随机抽取的名字。
问题:想用excel自带的vlookup命令,但这个命令没法识别你首先选的是哪个部门,所以也就无法从选出正确的人员来,例如,让它选ADM,它却从总表中任意选择的。所以才请教大虾。
若能解决,愿将本人全部50分送出,谢谢!
展开
 我来答
chenjin99
2009-12-13 · TA获得超过7057个赞
知道大有可为答主
回答量:1304
采纳率:100%
帮助的人:1860万
展开全部
我为你写了一个自定义函数,请试下。代码如下:

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!
QSDDZ
2009-12-13 · TA获得超过1048个赞
知道小有建树答主
回答量:621
采纳率:50%
帮助的人:543万
展开全部
用MATCH,INDEX,RAND等函数可以解决,关键是你的人员表在哪个表,是这样的数据结构,部门和姓名在哪列,指定的部门在哪个单元格,你不把问题描清楚,没办法帮你写公式。HI我一下吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
常艺璇123
2009-12-17
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
向大虾请教:
问题背景:想做一个随机点名系统,但抽查人员必须先选定部门,比如ADM(行政部),ENG(技术部),QAD(质保部)。选定后,即在EXCEL的某个单元格(如A8单元格),显示随机抽取的名字。
问题:想用excel自带的vlookup命令,但这个命令没法识别你首先选的是哪个部门,所以也就无法从选出正确的人员来,例如,让它选ADM,它却从总表中任意选择的。所以才请教大虾。
若能解决,愿将本人全部50分送出,谢谢!

提问者:
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
池新雨y
2009-12-13 · TA获得超过1256个赞
知道小有建树答主
回答量:854
采纳率:66%
帮助的人:359万
展开全部
用vlookup可以的,看你怎么用了~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式