Share via


WorksheetFunction.VLookup(Object, Object, Object, Object) 方法

定义

在表格数组的首列查找值,并由此返回表格数组当前行中其他列的值。

public object VLookup (object Arg1, object Arg2, object Arg3, object Arg4);
Public Function VLookup (Arg1 As Object, Arg2 As Object, Arg3 As Object, Optional Arg4 As Object) As Object

参数

Arg1
Object

Lookup_value - 要在表数组的第一列中搜索的值。 Lookup_value 可以是一个值,也可以是一个引用。 如果 lookup_value 小于 table_array 的第一列中的最小值,则 VLOOKUP 返回 #N/A 错误值。

Arg2
Object

Table_array - 两列或更多列的数据。 使用对区域或区域名称的引用。 table_array 的第一列中的值是按 lookup_value 搜索得到的值。 这些值可以是文本、数字,也可为逻辑值。 文本不区分大小写。

Arg3
Object

Col_index_num - 必须从中返回匹配值的 table_array 中的列数。 如果 col_index_num 为 1,则返回 table_array 的第一列中的值;如果 col_index_num 为 2,则返回 table_array 的第二列中的值,依此类推。

Arg4
Object

Range_lookup - 一个逻辑值,指定是希望 VLookup(Object, Object, Object, Object) 方法查找完全匹配项还是近似匹配项:

返回

注解

VLookup 中的 V 表示垂直方向。 如果比较值位于要查找的数据左侧的列中,请使用 VLookup 方法而不是 HLookup(Object, Object, Object, Object) 方法。

如果 Col_index_num 小于 1,则 VLookup 方法将生成错误。

如果 Col_index_num 大于 table_array 中的列数,则 VLookup 方法将生成错误。

如果Range_lookup 为 true 或省略,则返回完全匹配或近似匹配。 如果找不到精确匹配值,则返回下一个小于 lookup_value 的最大值。

table_array 的第一列中的值必须按降序排列;否则,VLookup 方法可能不会返回正确的值。

如果Range_lookup为 false则 VLookup 方法将仅找到完全匹配项。 在本例中,无需对 table_array 的第一列中的值进行排序。 如果 table_array 的第一列中的两个或更多值与 lookup_value 相匹配,则使用所找到的第一个值。 如果找不到精确匹配值,则生成错误。

在table_array的第一列中搜索文本值时,请确保table_array的第一列中的数据没有前导空格、尾随空格、不一致地使用直 ( 或“) 和大括号 ('或”) 引号“或非打印字符。 在这些情况下, VLookup 方法可能会提供错误或意外的值。 有关如何清理或剪裁值的信息,请参阅 Clean(String)Trim(String) 方法。 在搜索数字或日期值时,请确保 table_array 第一列中的数据未存储为文本值。 在此情况下,VLookup 方法可能给出不正确或非预期的值。

如果range_lookup为 false 且lookup_value为文本,则可以在 lookup_value 中使用通配符、问号 ( ) 和星号 (*) 。 问号可匹配任意的单个字符;星号可匹配任意一串字符。 若要查找实际的问号或星号,请在字符前面键入一个波浪号 (~)。

适用于