ARTICLE · 1161225
Excel 函数与公式 -- 内容搜索(三)-- HLOOKUP/VLOOKUP
Excel 函数与公式 -- 内容搜索(三)-- HLOOKUP/VLOOKUP前面我们讨论了 Excel 中的 LOOKUP 函数,这是电子表格软件中最早的查找函数,它要求查找区域必须是已排序的,实际应用中并非所有查找区域都是已排序的,所以 LOOKUP 有时候用起来并不方便。为此,微软增加了 HLOOKUP 和 VLOOKUP 两个查找函数。 HLOOKUP HLOOKUP 的全称是 Horizontal Lookup,意思是横向查找。在详细介绍 HLOOKUP 之前,先来看一个例子。 例1. HLOOKUP 示例 
图1 HLOOKUP 示例 在这个例子中,E2 单元格的公式是 =HLOOKUP(E1, A1:C6, 3, FALSE)。意思是查找 E1 单元格中给出的内容,搜索区域是 A1:C6。HLOOKUP 只在搜索区域的第一行查找,在本例中就是 A1:C1。在这个搜索区域中查找 E1 中的内容,就是在 A1:C1 中搜索 Frequency。最后的参数 FALSE 表示在这个范围中进行精确查找。查找的结果是 A1 单元格,因为已经明确查找范围是第一行,所以需要的是查找 Frequency 所在的列号,即第一列。公式中的 3 是所要结果所在的行号。查找结果的列号和所要结果的行号结合起来,就是所要的结果,即第一列第三行,所以结果单元格是 A3,而 A3 的内容是 4.19,这就是 HLOOKUP 返回的结果。 从上面的示例中可以看出,HLOOKUP 在搜索区域的第一行搜索,找出查找内容所在的列号,与参数中的行号结合起来,就是给出了返回结果的单元格。 下面的 HLOOKUP 的一般格式: 
其中, 因为 HLOOKUP 是在搜索区域 table_array 中的第一行中进行横向查找,因此称为 Horizontal Lookup(横向查找)。 如上面所述,HLOOKUP 最后的可选参数控制 HLOOKUP 在查找时的匹配方式:省略或TRUE,表示模糊匹配,此时搜索区域的第一行必须是已排序,否则会得到错误的结果,如下图所示: 
图2 模糊匹配时搜索行未排序的结果 因为公式中省略了 range_lookup,表示要求 HLOOKUP 进行模糊匹配,但此时第一行 A1:C1 并未排序,因此 E2 的结果并非如预期的 4.19,而是 orange。这是一个错误的结果。 例2. HLOOKUP 示例2 
图3 采用精确匹配的 HLOOKUP 
图4 采用模糊匹配的 HLOOKUP 图3 指定了 range_lookup 为 FALSE,表明让 HLOOKUP 使用精确匹配进行搜索,此时搜索区域的第一行并未排序。 图4 省略了 range_lookup 参数,表明让 HLOOKUP 使用模糊匹配进行搜索,此时搜索区域的第一行已排序。 从图3、图4 可以看出,两种方式得出了相同的正确结果。 由上面的讨论可以看出,使用 HLOOKUP 可以查找搜索区域中的任何值。 相关阅读 Excel 函数与公式 -- 内容搜索(一) Excel 函数与公式 -- 内容搜索(二)


lookup_value:这是要查找的内容,可以是具体的值(数值或字符串,对于字符串,要用双引号括起来),也可以是单元格,表示要查找单元格中的内容。 table_array:搜索区域,HLOOKUP 只搜索该区域的第一行,作为中间结果,返回 lookup_value 所在的行与列。 row_index_num:行号。此行号与 HLOOKUP 作为中间结果返回的列号结合起来,就是最终结果的单元格所在的行与列。 range_lookup:此参数决定 HLOOKUP 采用精确匹配还是模糊匹配。缺省该参数或者指定 TRUE,表示让 HLOOKUP 在搜索时使用模糊匹配,此时,搜索区域的第一行必须是已排序的(这与 LOOKUP 的要求相同);若指定 FALSE,则表示 HLOOKUP 在搜索时使用精确匹配,此时,搜索区域的第一行不需要排序,如上面的例子所示。


