永发信息网

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

答案:3  悬赏:20  手机版
解决时间 2021-12-30 18:50
我现在有一份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
全部回答
人员名单表为sheet2 在成绩表中C2输入 =VLOOKUP(A2,Sheet2!$A:$B,2,FALSE) 然后在C列向下复制C2的公式即可. VLOOKUP使用说明: 在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。当比较值位于数据表首列时,可以使用函数 VLOOKUP 代替函数 HLOOKUP。 在 VLOOKUP 中的 V 代表垂直。 语法 VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) Lookup_value 为需要在数组第一列中查找的数值。Lookup_value 可以为数值、引用或文本字符串。 Table_array 为需要在其中查找数据的数据表。可以使用对区域或区域名称的引用,例如数据库或列表。 如果 range_lookup 为 TRUE,则 table_array 的第一列中的数值必须按升序排列:…、-2、-1、0、1、2、…、-Z、FALSE、TRUE;否则,函数 VLOOKUP 不能返回正确的数值。如果 range_lookup 为 FALSE,table_array 不必进行排序。 通过在“数据”菜单中的“排序”中选择“升序”,可将数值按升序排列。 Table_array 的第一列中的数值可以为文本、数字或逻辑值。 文本不区分大小写。 Col_index_num 为 table_array 中待返回的匹配值的列序号。Col_index_num 为 1 时,返回 table_array 第一列中的数值;col_index_num 为 2,返回 table_array 第二列中的数值,以此类推。如果 col_index_num 小于 1,函数 VLOOKUP 返回错误值值 #VALUE!;如果 col_index_num 大于 table_array 的列数,函数 VLOOKUP 返回错误值 #REF!。 Range_lookup 为一逻辑值,指明函数 VLOOKUP 返回时是精确匹配还是近似匹配。如果为 TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值;如果 range_value 为 FALSE,函数 VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值 #N/A。 说明 如果函数 VLOOKUP 找不到 lookup_value,且 range_lookup 为 TRUE,则使用小于等于 lookup_value 的最大值。 如果 lookup_value 小于 table_array 第一列中的最小数值,函数 VLOOKUP 返回错误值 #N/A。 如果函数 VLOOKUP 找不到 lookup_value 且 range_lookup 为 FALSE,函数 VLOOKUP 返回错误值 #N/A。
如果人少的话,直接排序来做就可以。贴几下就行了。 如果人很多,可以考虑用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 //在工号表后面填写成绩 next b next a end sub 要是你还是不会我可以帮你做,我的QQ是39639050,不过只有18日和20日的白天在线。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
顾漫的《骄阳似我》下册有了吗?在哪里可以看
为什么选择移动
直流焊机能启动柴油发动机不
S.H.E的歌曲里面有哪些是Hebe没有唱词的?
这个人有多高,怎么测量自己长大后的身高
好乐买刚买的鞋,还没发货,怎么退款 60分
如何用电脑定闹钟
求下面长方体的表面积.(单位:厘米)
我妈妈七十多岁了最近起夜很频繁,不知道是什
人在外地,不回老家计生办能开引产证明吗
迷糊和模糊分别有什么意思
单选题调制器的作用是A.将不同的电流信号任意
意尔康,红蜻蜓,奥康哪个品牌男士皮鞋质量好
在英国应该买什么纪念品
阿汤哥的电影中哪些有国语配音的
推荐资讯
高速罚款网上怎么交
为什么苏宁易购自提要等仓库发货给门店?
办理综合工时制
监控摄像头那个牌子好
通用航空类属于国家哪个部门经理
秦楼村委会在什么地方啊,我要处理点事
快手怎么赚钱的
公文的语言应当?
一个女生经常偷偷注视着我,但是她不会让我发
理智和情感冲突的时候,有没有办法重新构建情
铵根离子显什么性
人们在死亡之前自己会有预感吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?