VLOOKUP是什么

VLOOKUP 函数是一个查找函数,能够根据已有的数据找到和它一一对应的其他数据。它需要4个参数才能得到你想要的结果:
=VLOOKUP(查找值,数据表,列序数,匹配条件)

简单应用

学号 姓名 专业 毕业院校 爱好
214 AA 人资 北大 羽毛球
311 BB 公关 清华 足球
544 CC 工管 暨大 网球
512 小兰 金融 厦大 动漫
454 DD 生物医学 人大 长跑
450 RR 生物技术 暨大 画画

我想在下面分表中得到学号是 544、512、454 的同学毕业院校分别是哪一个?肿么办?

学号
544
512
454

公式:

  1. =VLOOKUP(H4,A:E,4,0)

用上面的公式是想得到 G2 单元格中 544 学号这位同学,他的毕业院校是哪一个。可以一个一个参数的来解读上面的公式:
找谁?
找 G2,也就是学号 544。
去哪儿找?
A 列到 E 列(A:E),也就是包含所有学号、院校等信息的数据表。
在第几列?
院校在数据表 A:E 范围内是第 4 列。
匹配条件?
精确匹配(0),必须找到一模一样的学号,多一个空格都不行。

进阶应用

我要表格里面一部分人的所有数据内容,怎么办呢?一列一列地 V 出来吗?那样不方便哦。

先介绍一个新的函数:COLUMN()。简单来说,它可以告诉你某一个单元格的在第几列。

学号 姓名 专业 毕业院校 爱好
544
512
454
=VLOOKUP($H4,$A:$E,COLUMN(B1),0)

我们先看计算姓名的公式:
找什么?
要拿学号去数据表中找,所以还是用 G2 中的学号 544。
去哪儿找?
去 A:E 列里面找,Excel 会自动在范围内的第一列找学号。
姓名在第几列?
其实在区域里的第 2 列,这里用了另外一个函数 COLUMN(B1),它的结果就是 2。之所以不直接填写数字 2,是为了公式填充到其他列后,可以自动得到 2、3、4、5等,从而返回不同的结果。
匹配条件?
精确匹配(0),找一模一样的学号。

再来看公式里比较高级的三个设置:
❶ $G2:锁定了查找学号在G列,这样向右复制公式时,始终保持在G列,不跑偏;而向下填充公式时,行号前没有美元符号,所以会自动变化成G2、G3、G4;
❷ $A:$E:同样的,锁定在了A到E列的匹配范围内,无论向右还是向下填充复制公式都不会变;
❸ COLUMN(B1):没有锁定列,所以向右填充时,会自动变成返回C1、D1、E1的列号,也就是3、4、5…

但这个公式能成功得到全部结果,其实靠运气。因为案例中,要返回的数据顺序分别是:
姓名、专业、毕业院校、爱好

而数据表中匹配顺序也刚好是:
姓名、专业、毕业院校、爱好

两者一模一样,所以才会能一一对应上。如果顺序不一样,中间还有多了一列或少了一列,就对不上了。怎么办?这个时候,就要用到更加高级的函数 Match,来自动返回各自对应的列数。

注意事项

在使用函数公式时,一定要注意下面几个事情,不然就可能会遇到麻烦:
❶ 在 Excel 中,参数的输入都是英文状态下的,不能用中文哦;
❷ 参数之间都是用逗号隔开的;
❸ 匹配方式我们常用的是精确匹配,就是 FALSE,也可以在第四个参数那里填写“0”,因为精确匹配=FALSE=0,模糊匹配=TURE=1。

如何通过全程查找匹配简称

存货名称 品牌名称 品牌名称
丹姿水密码mi膜 冰之恋
舒蕾烁金焗油洗护系列 采媚
美涛润发造型啫哩膏 丹姿
冰之恋长效保湿护唇膏(香草) 六神
美宝莲眼部及唇部卸妆液+小卸 美宝莲
玉兰油新生焕活深彻洁面乳 美涛
玉兰油水感透白莹肌亮肤液 强生
强生天然舒润滋养沐浴露 舒管
|六神艾草健肤清凉沐浴露 玉兰油
|六神艾草健肤止痒沐浴露

这是一个很典型的查找匹配问题:如何通过全程查找匹配简称

通过 Lookup 函数和 Find 函数的组合,可以完美简洁,而且非常轻松:
640.gif
这个公式看起来虽然复杂,但是结构是经典的多条件查找匹配结构,一旦掌握,以一当十。

**


=LOOKUP(1,0/((条件1)*(条件2)*(条件N)),结果区域**)

此公式结构中,需要改变的只有红色标识的几个参数。

=LOOKUP(1,0/FIND($D$2:$D$10,A2),$D$2:$D$10)

在此公式中,只有一个条件,由 Find 函数构成,而在查找到符合条件的数据后,返回 D2:D10 中的品牌名称(简称)。

注意事项:

**

❶ Find 函数中第一个参数是拿所有的品牌名称去 A2 中查找,逐个匹配; ❷ 条件区域和结果区域的行数必须相同,才能得到正确结果。 此案例中同为 D2:D10 区域,满足此条件。

感悟与技巧

技巧:

在单元格输入公式名称时,输了一半看到公式了,按下【Tab】键,可以补全公式。 绝对引用的方法,选中引用区域,按下F4键,就不用手动输入$符号

感悟:

用公式出错的时候,可以看看是哪个参数出错,再进行修改,我一般容易出错的地方没有绝对引用。 不会的时候,终极大招是百度,可谓一招鲜吃遍天。可搜索 VLOOKUP 常见错误,然后自己摸索调试,很快就能解决问题。

**

症结

❶ #REF!错误:引用了无效的单元格,会出现该错误。
❷ #VALUE!错误:公式中引用了错误参数或数值,会出现该错误。

查找对象不在查找区域的第一列中


vlookup函数 - 图2
错误解析

VLOOKUP 查找对象必须位于查询区域的最左列。此例中「武汉分部」在 B2:D10 的第二列 ,所以返回# N/A 错误。

解决方法

修改 VLOOKUP 的第二参数区域和第三参数列号。

D14 单元格正确公式应为:

=VLOOKUP(C14,C1:D2,2,0)

找不到完全匹配项

a. 数据类型不匹配


vlookup函数 - 图3
错误解析

在此例中,B 列的编号是文本格式,而 C14 是数字格式,数据类型不匹配 ,所以返回# N/A 错误。

=VLOOKUP(C14,B1:D2,3,0)

解决方法

将 VLOOKUP 的第一参数转换为文本。

D14 单元格正确公式应为:

=VLOOKUP(C14&"",B1:D10,3,0)

延伸思考

问题 如果 B 列是数字,C14 是文本该怎么办呢?

解答 需要将第一参数转换为数值。

公式如下:

=VLOOKUP(--C14,B1:D10,3,0)

b. 有空格或者不可见字符等


vlookup函数 - 图4
错误解析

在此例中,B 列和 C14 的单元格式都是文本格式,但是为什么 VLOOKUP 还是返回# N/A 错误呢?

鼠标点击 C14 单元格,可以在编辑栏里看到「101」后面后两个空格。

vlookup函数 - 图5
解决方法

用 TRIM 函数删掉两端的空格。

D14 单元格正确公式应为:

=VLOOKUP(TRIM(C14),B1:D10,3,0)

延伸思考

问题 如果是 C14 单元格中是非打印字符(在编辑栏里也看不见的隐身字符),怎么办?

解答 使用 CLEAN 函数删除不能打印的字符 。

公式如下:

=VLOOKUP(CLEAN(C14),B1:D10,3,0)

c. 所见非所得


vlookup函数 - 图6
错误解析

在此例中,C 列的分部名称是通过自定义单元格格式将「武汉」化妆为「武汉分部」,通过编辑栏,可以看见 C2 单元格实际还是「武汉」,所以返回# N/A 错误。

vlookup函数 - 图7
解决方法

❶ 在 A 列添加辅助列,让所见变为所得。
❷ 在 A2 单元格输入公式:=C2&”分部”,然后双击向下填充。
vlookup函数 - 图8
❸ 在 D14 单元格输入公式:

=VLOOKUP(C14,A1:D10,4,0)

查找区域没有加绝对引用

vlookup函数 - 图9
错误解析

在此例中,由于没有对查询区域限定为绝对引用,D14 单元格公式向下填充时,查找区域发生变化,导致找不到查询对象,返回# N/A 错误。

解决方法

在 D14 输入公式时锁定查找区域,然后向下填充。

D14 单元格正确公式应为:

=VLOOKUP(C14,$C$1:$D$10,2,0)

查找值并不完全匹配


vlookup函数 - 图10
错误解析

在此例中,C 列的分部名称包含「分部」两个字,而 C14 只有「武汉」,所以返回# N/A 错误。

解决方法

将 VLOOKUP 的第一参数使用通配符查询。

D14 单元格正确公式应为:

=VLOOKUP(C14&"*",C1:D10,2,0)

数据源中没有需要的查找值

错误解析

严格的来说,这并不是 VLOOKUP 的错误,因为确实找不到对象嘛。但是为了数据处理的美观性,我们可以通过 IFERROR 函数辅助,在 VLOOKUP 查不到对象时返回空值进行处理。

解决方法

可以使用 IFERROR 函数屏蔽错误。
**vlookup函数 - 图11

=IFERRO(VLOOKUP(C14,C1:D10,2,0),"")

#REF!错误

vlookup函数 - 图12
错误解析

在此例中,C1:D10 这个数据区域只有两列,VLOOKUP 函数的第三参数却要求返回第 3 列的数据,超过了查找区域的最大列,所以返回#REF!错误。

解决方法

D14 单元格正确公式应为:

=VLOOKUP(C14,C1:D10,2,0)

#VALUE! 错误

vlookup函数 - 图13
错误解析

我们知道 VLOOKUP 函数的第三参数必须要介于(1~查询区域的最大列),而此例中第三参数小于 1,所以返回#VALUE! 错误。

解决方法

D14 单元格正确公式应为:

=VLOOKUP(C14,C1:D10,2,0)

结果就是不对

a.结果就是不对

vlookup函数 - 图14
错误解析

在此例中,武汉分部的销售额应该是 40846,但公式返回结果却是 83070,经过检查发现是 VLOOKUP 的第四参数使用了近似匹配。

解决方法

D14 单元格正确公式应为:

=VLOOKUP(C14,C1:D10,2,0)

b. 问题:查找值中包含通配符


vlookup函数 - 图15
错误解析

在此例中,102050 产品型号的库存应该是 236,但公式返回结果却是 479。这是因为查找值中包含通配符「」,而 VLOOKUP 支持通配符查询,导致查找到的是「10200*50」所对应的库存数 479。

在 Excel 中有三个通配符:*、?、~,用法如下图所示:

用法 要查找
? 任何一个字符
例如,sm?th可以找到”smith”和”smyth”
* 任意的数量字符
例如,*east可找到”Northeast”和”Southeast”
~ 问好、星号或波形符
例如,fy06~?可找到”fy06?”

当查找值中包含这三个字符时,VLOOKUP 直接查找可能会返回错误的结果,所以在本例中需要将查找值中的「」替换为「~」,取消「*」作为通配符的特性。

解决方法

D14 单元格正确公式应为:

=VLOOKUP(SUBSTITUTE(C14,"*","~*"),C1:D10,2,0)

不可见字符


vlookup函数 - 图16
错误解析
日常工作中,我们会需要从企业管理系统导出数据或从网站复制、下载数据,但这一类的数据有时会带有一些相当顽固的「污渍」——不可见字符,这些「污渍」会给数据处理带来很多困扰。
解决方法
❶ 新建一个记事本文件,并将带有「污渍」的数据复制、粘贴到记事本中;
❷ 单击记事本左上角的文件-另存为,左下方的编码下拉列表中选择「ANSI」,然后单击保存,并关闭记事本;
❸ 再次打开刚才关闭的记事本文件,将记事本中的数据复制、粘贴回 Excel 文档中;
❹ 在 Excel 中进行查找替换,将?替换为空白;