VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
Lookup_value 为需要在表格数组 (数组:用于建立可生成多个结果或可对在行和列中排列的一组参数进行运算的单个公式。数组区域共用一个公式;数组常量是用作参数的一组常量。)第一列中查找的数值。Lookup_value 可以为数值或引用。若 lookup_value 小于 table_array 第一列中的最小值,VLOOKUP 返回错误值 #N/A。
Table_array 为两列或多列数据。使用对区域或区域名称的引用。table_array 第一列中的值是由 lookup_value 搜索的值。这些值可以是文本、数字或逻辑值。文本不区分大小写。
Col_index_num 为 table_array 中待返回的匹配值的列序号。Col_index_num 为 1 时,返回 table_array 第一列中的数值;col_index_num 为 2,返回 table_array 第二列中的数值,以此类推。如果 col_index_num :
- 小于 1,VLOOKUP 返回错误值 #VALUE!。
- 大于 table_array 的列数,VLOOKUP 返回错误值 #REF!。
Range_lookup 为逻辑值,指定希望 VLOOKUP 查找精确的匹配值还是近似匹配值:
注解
- 在 table_array 第一列中搜索文本值时,请确保 table_array 第一列中的数据没有前导空格、尾部空格、直引号(' 或 ")与弯引号(‘或“)不一致或非打印字符。否则,VLOOKUP 可能返回不正确或意外的值。有关详细信息,请参阅 CLEAN 和 TRIM。
- 在搜索数字或日期值时,请确保 table_array 第一列中的数据未存储为文本值。否则,VLOOKUP 可能返回不正确或意外的值。有关详细信息,请参阅将保存为文本的数字转换为数字值。
- 如果 range_lookup 为 FALSE 且 lookup_value 为文本,则可以在 lookup_value 中使用通配符、问号 (?) 和星号 (*)。问号匹配任意单个字符;星号匹配任意字符序列。如果要查找实际的问号或星号,请在该字符前键入波形符 (~)。
但在实际使用过程中,我们要查找的lookup_value并不在table_array的首列,这个时候就可能需要倒查了。
以下面的表格为例:

如果我们要查找的lookup_value是上面表格的第一列,那么我们可以直接使用VLOOKUP公式,如下图:

但是如果我们要查的look_value是在源表格中我们想得到的值后面的列,那么我们就需要倒查了。如下图:

在上面的公式中用到了一个IF语句,IF({1,0},后面的列,前面的列),这个公式将原表中前后两列的位置互换,得到一个新的、保存在内存中的表格,它的第一列是原表中“后面的列”,也就是我们要在其中搜索lookup_value的列;而第二列则是我们需要查找对应值的列,也就是原表中“前面的列”。
在一般的情况下,根据一列查找另一列均可以使用这样的方法。如果特殊情况下需要三列或更多列的值,可以使用类似于{1,1,0}或者{1,0,0}这样的数组来控制前后顺序。
这个方法同样适用于公式HLOOKUP。
又想揍你了.....
....