『Excel』 VLOOKUP函数常用方法集合

VLOOKUP函数是工作中最常用的一种查找函数,掌握好VLOOKUP函数能够极大提高工作的效率。

函数解析

VLOOKUP函数用于首列查找并返回指定列的值,字母“V”表示垂直方向。

VLOOKUP函数的语法如下:

VLOOKUP(lookup_value,table_array,col_index_num,[range_lookup])

其中,第1参数lookup_value为要搜索的值,第2参数table_array为首列可能包含查找值的单元格区域或数组,第3参数col_index_num为需要从table_array中返回的匹配值的列号,第4参数range_lookup用于指定精确匹配或近似匹配模式。

range_lookup为TRUE、被省略或使用非零数值时,表示近似匹配模式,要求table_array第一列中的值必须按升序排列,并返回小于等于lookup_value的最大值对应列的数据。当参数为FALSE时(常用数字0或保留参数前的逗号代替),表示只查找精确匹配值,返回table_array的第一列中第一个找到的值,精确匹配模式不必对table_array第一列中的值进行排序。

如果使用精确匹配模式且第1参数为文本,则可以在第1参数中使用通配符问号(?)和星号(*)。VLOOKUP函数不区分字母大小写。

基本查找

A3:B7单元格区域为字母等级查询表,表示60分以下为E级、6069分为D级、7079分为C级、80~89分为B级、90分以上为A级。D:G列为初二年级1班语文测验成绩表,如何根据语文成绩返回其字母等级?

在H3:H13单元格区域中输入=VLOOKUP(G3,$A$3:$B$7,2)

返回第二列

image-20200914082729751

返回多列(一)

image-20200914083539515

按照上面的方式输入公式

=VLOOKUP(G4,$A$2:$E$13,2,0)

这里将数据源区域进行绝对引用。

然后下拉,得到查询结果:

image-20200914084423147

但是将其向右,向下拉的时候,此时会匹配错误!

image-20200914091057439

解决方案:

姓名,语文,数学,英语,四列是挨着的,可以用COLUMN() 函数 返回要查找的列号:

完整公式:

=VLOOKUP($G4,$A$3:$E$13,COLUMN(B2),0)
image-20200914091436040

解释:

COLUMN(B2) 返回的是列号,此时返回的是2,当向右侧拖动的时候,依次是 C2,D2,E2, COLUMN 返回的值依次是3,4,5,分别对应我们数据源中的语文,数学,英语列。

还有一点是对索引值的列号进行了绝对引用,因为当我们向右拖动公式的时候,要索引的列是不变的,需要将其进行绝对引用。

返回多列(二)

上面的数据中,要查找的列和数据源中的列,都是挨着并且顺序是相同的,但是如果顺序不相同,该如何匹配呢?

image-20200914094019765

此时再用 COLUMN() 函数就不太行了,此时可以用 MATCH() 函数,函数返回匹配值的列号。

例如要查找的英语在源数据中是第几列。

=MATCH(K4,2:2,0)

结果返回为5:

查询我们想要的结果:

=VLOOKUP($J5,$A:$H,MATCH(K4,2:2,0))
image-20200914095704733

关键字为多列(多条件)查询

VLOOKUP 是以第一列为关键字进行查询的。当条件为多个时,该如何查询呢?

例如, 根据右侧的条件进行查询

image-20200914102128243

方法一: 辅助列

将要查超的关键字进行合并:

=B2&C2&D2
image-20200914102552194

在进行查询:

=VLOOKUP(K3&L3&M3,A:H,7,0)
image-20200914103052904

方法二: index+match

数组公式:

=INDEX($G$2:$G$585,MATCH(K3&L3&M3,$B$2:$B$600&$C$2:$C$600&$D$2:$D$600,0))

输入完公式后,ctrl + shift + enter

image-20200914105857485

表有合并单元格

查找函数VLOOKUP这个函数,大家喜闻乐见, 很多表中使用了合并单元格,这样就会导致正常的查找函数无法返回正确结果。

image-20200914111903406

使用一般的查找方式进行查找:

image-20200914112134697

解决:

使用 LOOKUP() 函数,

=LOOKUP("座", $D$3:D3)
image-20200914112542483

在要查找的地方进行公式输入:

image-20200914112810041

LOOKUP+COLUMN快速填充做工资条

Vlookup与COLUMN函数的嵌套也可以应用在制作工资条上,并且员工数越多,使用该法越方便。下表是某公司部分员工的工资表,现在要将其制作成工资条,如何完成呢?

20190114174727555008

(1)可以将表格列表标题复制在H1:M1区域。

(2)9名员工,每名工资条3行,共需27行。选中G1:G27,输入任何一个输入数字后按Ctrl+Enter键填充。这一列是为双击向下填充准备的,避免员工人数多向下拖动填充的不便。

(3)在H2单元格输入序号1,然后在I2单元格中输入公式:

=VLOOKUP($H2,$A$2:$F$10, COLUMN(B2),)

(4)右拉填充公式。

(5)选中H1:M3区域,双击右下角填充句柄(小方块)向下填充即可完成工资条的制作。

操作演示请看↓↓↓

20190114174728818009

补充知识

1、MATCH()函数

Match函数是Excel中使用较为广泛的一个函数。其主要作用是:在“范围”单元格中搜索特定的项,然后返回该项在此区域中的相对位置。

通俗的将:MATCH函数返回指定值在数组中的位置,如果在数组中没有找到该值则返回#N/A。

例如:如果A1:A3区域中包含值5,15和28,那么公式=MATCH(15,A1:A3,0)返回数字2,因为15是该区域中的第二项。

MATCH函数返回指定值在数组中的位置,通常和其它函数配合使用,如INDEX函数、VLOOKUP函数等。

语法

MATCH(lookup_value, lookup_array, [match_type])。
  • lookup_value 必需。要在 lookup_array\ 中匹配的值。
    *lookup_value* 参数可以为值(数字、文本或逻辑值)或对数字、文本或逻辑值的单元格引用。

  • lookup_array 必需。要搜索的单元格区域。

  • match_type 可选。数字 -1、0 或 1。match_type 参数指定 Excel 如何将lookup_valuelookup_array 中的值匹配。此参数的默认值为 1。

    1 或省略

    MATCH 查找小于或等于 lookup_value 的最大值。lookup_array 参数中的值必须以升序排序,例如:…-2, -1, 0, 1, 2, …, A-Z, FALSE, TRUE。

    0

    MATCH 查找完全等于 lookup_value 的第一个值。lookup_array 参数中的值可按任何顺序排列。

    -1

    MATCH 查找大于或等于 lookup_value *的最小值。lookup_array* **参数中的值必须按降序排列,例如:TRUE, FALSE, Z-A, …2, 1, 0, -1, -2, … 等等。

注意事项:

1、MATCH函数返回查找项的位置,而不是值本身。如果需要获取值本身,则需要和其它函数一起使用,如INDEX、VLOOKUP。

2、匹配文本值时,MATCH 函数不区分大小写字母。

3、如果 match_type为 0 且 lookup_value 为文本字符串,您可在lookup_value 参数中使用通配符 - 问号 (?) 和星号 (***) 。问号匹配任意单个字符;星号匹配任意一串字符。如果要查找实际的问号或星号,请在字符前键入波形符 (~**)。

4、如果 MATCH 函数查找匹配项不成功,它会返回错误值 #N/A。

2、INDEX() 函数

作用:返回表格或区域中的值或值的应用。

语法

INDEX(array, row_num,[column_num])。

解释:INDEX(数组或区域,行号,列号)。

1、如果数组只包含一行或一列,则对应的参数Row_num或Column_num为可选参数。

2、如果数组有多行或多列,但只使用参数Row_num或Column_num,函数INDEX返回数组中的整行或整列,且返回值也为数组。

3、如果同时使用参数Row_num或Column_num,函数INDEX返回Row_num和Column_num交叉处的单元格中的值。

4、如果将Row_num或Column_num设置为(零),函数INDEX则分段返回真个列或行的数组数值。

5、若要使用以数组形式返回的值,请将INDEX函数以数组公式形式输入,对于行以水平单元格区域的形式输入,对于列以垂直单元格区域的形式输入。若要输入数组公式,请按Ctrl+Shift+Enter。

3、LOOKUP()函数

3、COLUMN()函数

简单说下COLUMN函数的含义和用法。

COLUMN函数用于获取列号,使用格式COLUMN(reference),当中Reference为需要得到其列标的单元格或单元格区域。典型用法有三种。

1.COLUMN()

参数为空,COLUMN()返回公式所在单元格的列坐标值,如下公式位于B7单元格,所以返回值为2。

20190114174726994004

2、COLUMN(C4)

参数为具体的某个单元格,如COLUMN(C4),返回C4所在列号3,如下。

20190114174726805005

COLUMN(A2:E6)

参数为单元格区域,如COLUMN(A2:E6),返回区域中第1列(A2所在列)的列号值1,如下。

20190114174726232006

用COLUMN取代VLOOKUP第三参数

参考:

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2019-2021 HG | 访问人数: | 浏览次数:

请我喝瓶农夫三拳吧~

支付宝
微信