EXCEL的批量替换该如何使用?

来源:百度知道 编辑:UC知道 时间:2024/05/21 15:45:22
我现在有一份200个的人员名单,格式如下:

姓名 工号
王一 007
王二 008
王三 009
王四 010
....

=================
我还有另一份数据,是这些人上个月的成绩,格式如下:

姓名 成绩
王一 98
王四 100
王三 90
王二 88
......

================
我现在需要的结果是:

把成绩表中的人员姓名全部替换为工号,该如何操作呢?

请大家帮帮忙,并说明每一步公式的含义,谢谢!
.
leeon_yang:
哦,不好意思,我忘了说清楚了,那些人名有重复的,也就是说在成绩表中的数据可能是2000个,不能按排序的方法处理,非常感谢!
还有啊,你说的那个VBA的方法好复杂啊,看不懂,听说VLOOKUP就可以实现,但我一直搞不清楚是怎么用的,能否讲一下啊?谢谢!
.

使用 VLOOKUP 函数

思路就是,根据你的员工名单(注意:员工的名字跟工号必须一一对应,不能有重复的,假如员工有同名同姓的,需要先区分,例如王一 001 王一 002 先把第一个王一改成王一一。)

姓名 工号
王一 001
王二 002
王三 003
王四 004

然后设置函数,判断成绩单的名字,返回员工的工号。

姓名 成绩 工号
王三 80 003
王四 99 004
王二 78 002
王一 60 004
王四 88 004
王二 68 002

最后可以把工号用选择性粘贴会名字那里或者把名字那列隐藏了。

我做了个演示文件,你可以下载来看看。

http://www.win-club.net/ray/test1.xls

如果人少的话,直接排序来做就可以。贴几下就行了。

如果人很多,可以考虑用VBA来做,但是条件是人名不能有重复。大概过程是这样:

sub()
dim a,b,c as int
dim name as string
for a=1 to 最后
name= worksheets("成绩").cells(a,1).value //读取成绩表里的姓名
for b=1 to 最后
if worksheets("工号").cells(b,1)=name then //查找工号表里的姓名
c= worksheets("成绩").cells(a,2).value //读取成绩
worksheets("工号").cells(b,3)=c //在工号表后面填写成绩
ne