ARTICLE · 1194676
Excel 函数与公式 -- 内容搜索(四)
Excel 函数与公式 -- 内容搜索(四)上文我们讨论了 HLOOKUP,今天讨论 VLOOKUP。 我们知道,HLOOKUP 是横向查找函数(Horizontal Lookup Function),那么,VLOOKUP 就是纵向查找函数(Vertical Lookup Function)。 横向查找函数的原理如下图所示: 
图1 HLOOKUP 原理示意 横向查找函数 HLOOKUP 就是查找搜索区域(table_array)的第一行,找到 lookup_value 值所在的列,与参数 row_index_num 结合起来就是结果单元格。而 range_lookup 参数控制查找行是否需要排序:0 或者 FALSE 表示 HLOOKUP 在查找时进行精确匹配,查找行不需要排序。省略该参数或者指定 1 或 TRUE 表示进行模糊匹配,此时查找行需要排序,否则将得到错误结果。 与此相对,VLOOKUP 的原理示意如下: 
图2 VLOOKUP 原理示意 VLOOKUP 函数与 HLOOKUP 函数基本一样,只是 row_index_num 参数换成了 col_index_num。此时,查找的是搜索区域中的第一列,找出匹配所在的行号,与参数中给出的列号结合,给出结果单元格。最后的 range_lookup 参数控制查找列是否需要排序:0 或者 FALSE 表示 VLOOKUP 在查找时进行精确匹配,此时查找列不需要排序。省却该参数或者指定 1 或 TRUE,则表示查找时进行模糊匹配,此时查找列需要排序,否则将得出错误的结果。 例1. VLOOKUP 函数示例 
图3 VLOOKUP 示例 在这个例子中,G2 单元格的内容是:=VLOOKUP(G1, A2:E7, 4): 因为 G1 单元格的内容是 102,则这个例子是在 A2:A7 中查找 102,查找的结果是 A3,即第 3 行,与参数中的列号 4 结合起来,就是第3行第4列,即 D3 单元格。而 D3 单元格的内容是 VP (Sales),这就是 VLOOKUP 返回的结果。 例2. VLOOKUP 示例2 
图4 VLOOKUP 示例2 这是一个比较复杂的例子,G3 单元格中的公式是由几个 VLOOKUP 拼合而成的: VLOOKUP(G1, A2:E7, 3) & " " & VLOOKUP(G1, A2:E7, 2) 拼合的结果就是人的名字,名在前,姓在后。因为 G1 单元格的内容是 105,查找的结果是 Brian Burke。 E 列的类型是日期,VLOOKUP(G1, A2:E7, 5) 返回的值是日期的内部表示,不能直接用,需要将其中的年、月、日分离出来,然后再拼合起来,才能构成我们所熟悉的日期格式。 VLOOKUP(G1, A2:E7, 5) 返回 E6 单元格的内容: 因此,将上面的内容拼合起来,就是:1955-3-4。 将上面所有的内容拼合起来,就是 G3 单元格的公式返回的内容。 相关阅读 Excel 函数与公式 -- 内容搜索(一) Excel 函数与公式 -- 内容搜索(二) Excel 函数与公式 -- 内容搜索(三)-- HLOOKUP/VLOOKUP



lookup_value 参数是 G1,表示查找 G1 单元格中的内容。 table_array 参数是 A2:E7,即表格中除表头外的数据部分构成搜索区域。 col_index_num 参数是 4,表示要返回第四列即 D 列的内容。 因为省略了 range_lookup 参数,表示查找时进行模糊匹配。因为查找列已经排好序,因此可以进行模糊匹配。

VLOOKUP(G1, A2:E7, 3):返回 C 列内容,即名 VLOOKUP(G1, A2:E7, 2):返回 B 列内容,即姓 VLOOKUP(G1, A2:E7, 5):返回 E 列内容,即出生日期
YEAR():YEAR() 是分离年份的函数,所以 YEAR(VLOOKUP(G1, A2:E7, 5)) 返回 1955。 MONTH():MONTH() 是分离月份的函数,所以 MONTH(VLOOKUP(G1, A2:E7, 5)) 返回 3。 DAY():DAY() 是分离日期的函数,所以 DAY(VLOOKUP(G1, A2:E7, 5)) 返回 4。















































































