Excel 函数——LOOKUP、VLOOKUP、HLOOKUP、XLOOKUP


源表格

所有案例都是基于此表格进行演示,表格用单元格表示为 A1:D9:

序号 员工姓名 部门 职务
1 苏霞 法务部 法律顾问
2 包志林 财务部 财务总监
3 林娥云 安监部 部长
4 石少卿 质检部 质检员
5 于炳福 生产部 生产部
6 蒋琼志 仓储部 保管员
7 刘龙飞 供应部 发货员
8 毕晓智 采购部 部长

LOOKUP

LOOKUP(lookup_value, lookup_vector, [result_vector])

参数讲解

  1. lookup_value:单元格、数字、字符。
  2. lookup_vector:必须提供包含 lookup_value 的列或行。
  3. result_vector:除 lookup_vector 之外的列或行,查找的结果在此中。

实际案例

题目:查找序号 3 对应的员工姓名?

列函数,LOOKUP(3, A1:A9, B1:B9),查询结果为林娥云。

lookup_value 输入数字 3,也就是序号一列中的 3,所以 lookup_vector 为 A1:A9。最终结果是查询员工姓名一列,所以 result_vector 为 B1:B9。

VLOOKUP 和 HLOOKUP

VLOOKUP 和 HLOOKUP 查找的方向不同。V 代表 Vertical,垂直方向;H 代表 Horizontal,水平方向。

下面的表格是用于保存函数返回之后的结果的存储表格,下文称之为存储表,存储表的位置为 A10:D15 :

序号 员工姓名 部门 职务
1
5
6
8

理解图

上图为 VLOOKUP 的查询方式。col_index_num 指定表格中第 3 列(部门),由于 VLOOKUP 是垂直方向查询的,所以用深色来表示。浅色表示的是 lookup_value,它可以是表格中任意一个单元格,图中是序号列中的第 4 个。

上图为 HLOOKUP 的查询方式。row_index_num 指定表格中第 5 行(序号 4 所在行),由于 HLOOKUP 是水平方向查询的,所以用深色来表示。浅色表示的是 lookup_value,它是表格中第一个单元格(首行),图中是部门列。

VLOOKUP

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

参数讲解

  1. lookup_value:单元格、数字、字符。
  2. table_array:在哪里查询,也就是源表格。
  3. col_index_num:结果在源表格中的第几列。
  4. range_lookup:一个逻辑值,该值指定希望 VLOOKUP 查找近似匹配(TRUE或不填)还是精确匹配(FALSE)。

实际案例

题目:填充存储表中的信息。

简单示范

列函数,VLOOKUP(A10, A1:A9, 2, TRUE),查询结果为林娥云。

A11 是填充表格序号 3,A1:A9 是源表格。

通过序号查找,所以 lookup_value 为 3。table_array 是 A1:A9(源表格)。查询的结果希望在源表格中的第二列中,也就是 员工姓名 这一列中,所以 col_index_num 为 2。

完整示范

序号 员工姓名 部门 职务
1 =VLOOKUP(\(A11,\)A\(1:\)D$9,2,TRUE) =VLOOKUP(A11,$A\(1:\)D$9,3,TRUE) =VLOOKUP(A11,$A\(1:\)D$9,4,TRUE)
5 =VLOOKUP(\(A12,\)A\(1:\)D$9,2,TRUE) =VLOOKUP(A12,$A\(1:\)D$9,3,TRUE) =VLOOKUP(A12,$A\(1:\)D$9,4,TRUE)
6 =VLOOKUP(\(A13,\)A\(1:\)D$9,2,TRUE) =VLOOKUP(A13,$A\(1:\)D$9,3,TRUE) =VLOOKUP(A13,$A\(1:\)D$9,4,TRUE)
8 =VLOOKUP(\(A14,\)A\(1:\)D$9,2,TRUE) =VLOOKUP(A14,$A\(1:\)D$9,3,TRUE) =VLOOKUP(A14,$A\(1:\)D$9,4,TRUE)

每一行不同列的函数的第一个参数(lookup_value)是不变的,因为是查询序号 1 的信息。只有第三个参数(col_index_num)发生了变化,对于序号 1 的不同列,比如员工姓名在源表格中是第二列,所以为 2,以此类推。

现在,来观察共同的地方,第二个参数(table_array)没有发生任何变化,是一个固定值,其中在字母和行号之前都加了符号$代表绝对引用。

关于函数单元格引用方式,。

HLOOKUP

HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])

参数讲解

  1. lookup_value:这里的查找值必须是表格中的第一行,也就是首行。
  2. table_array:在哪里查询,也就是源表格。
  3. row_index_num:结果在源表格中的第几行。
  4. range_lookup:一个逻辑值,该值指定希望 VLOOKUP 查找近似匹配(TRUE或不填)还是精确匹配(FALSE)。

实际案例

题目:填充存储表中的信息。

简单示范

列函数,HLOOKUP(B2, A1:D9, 4, TRUE),查询结果为林娥云。

lookup_value 必须为表格中的首行(可以是源表格,可以使用于提取数据的表格)B2 为源表格的第二列首行,A1:D9 为源表格,查询的是第四行的信息,因此 row_index_num 为 4。

完整示范

序号 员工姓名 部门 职务
1 =HLOOKUP($B\(1,\)A\(1:\)D$9,A11+1) =HLOOKUP($C\(1,\)A\(1:\)D$9,A11+1,FALSE) =HLOOKUP($D\(1,\)A\(1:\)D$9,A11+1)
5 =HLOOKUP($B\(1,\)A\(1:\)D$9,A12+1) =HLOOKUP($C\(1,\)A\(1:\)D$9,A12+1,FALSE) =HLOOKUP($D\(1,\)A\(1:\)D$9,A12+1)
6 =HLOOKUP($B\(1,\)A\(1:\)D$9,A13+1) =HLOOKUP($C\(1,\)A\(1:\)D$9,A13+1,FALSE) =HLOOKUP($D\(1,\)A\(1:\)D$9,A13+1)
8 =HLOOKUP($B\(1,\)A\(1:\)D$9,A14+1) =HLOOKUP($C\(1,\)A\(1:\)D$9,A14+1,FALSE) =HLOOKUP($D\(1,\)A\(1:\)D$9,A14+1)

第一个参数填写表格的首行(这里填写的是源表格的首行),row_index_num 填写的是源表格内第几行开始查询。根据VLOOKUP 和 HLOOKUP 查询方式的理解图理解,水平方向,部门和职务列中都有法字,因此需要开启精准查询,否则提示#N/A

XLOOKUP