excel vlookup

来源:百度知道 编辑:UC知道 时间:2024/06/17 06:55:36
有两个列表,全都有8行,A列是学生的姓名,B列全是成绩,C列空了一列,D是学生的姓名,E也是成绩,(在同一列的话太长)问:我想用VOOKUP函数在下面的空地方输入学生姓名,然后后面就有相应的成绩。现在只是能查到左边一列的,右边的没办法查,这个函数查询区

陈小春 86 周兴 95
周杰伦 96 任达华 68
宋祖英 56 杨二嫂 79
王二 85 扈三娘 85
张三 88 林冲 99
李四 95 成龙 59
王麻子 60 王小胜 22

输入姓名 xxx 成绩 xxx

姓名不重复

你可以在“成绩”后的XXX里利用Vlookup函数进行有条件的搜索。具体做法:

1.假如“输入姓名”后的XXX单元格为B11,成绩”后的XXX单元格为D11。
在D11单元格里输入:=IF(ISNA(VLOOKUP(B11,A1:B8,2,FALSE))=TRUE,VLOOKUP(B11,D1:E8,2,FALSE),VLOOKUP(B11,A1:B8,2,FALSE))即可。
2.解释说明:
(1)IF(逻辑表达:在单元格A1至B8区间内找不到满足条件的等于B11单元格匹配的姓名,逻辑为真:搜索填充单元格为D1至D8与B11匹配学生的成绩,逻辑为假:搜索填充A1至B8与B11匹配学生的成绩);
(2)ISNA()函数反映的是搜索后返回的逻辑值;
不知你是否明白了?

假设输入姓名在单元格B8.则可以用公式
=if(iserror(vlookup(B8,A1:B7,2,0)),vlookup(B8,D1:E7,2,0)),vlookup(B8,A1:B7,2,0)))

成绩的公式=IF(ISNA(VLOOKUP(B9,$A$1:$B$7,2,0)),VLOOKUP(B9,$D$1:$E$7,2,0),VLOOKUP(B9,$A$1:$B$7,2,0))

例每列有100名学生,在A102单元格输入学生姓名,在B102单元格输入公式=IF(A102="","",VLOOKUP(A102,OFFSET(A1:B101,,MAX(COUNTIF(OFFSET(A1:B101,,{0,3},),A102)*{0,3}),),2,))就可以查询了