Excel 中如何将 LOOKUP 函数用于未排序的数据
概要
更多信息
使用 INDEX 和 MATCH
使用 OFFSET 和 MATCH
示例
HLOOKUP 和 VLOOKUP
概要
Microsoft Excel 中,LOOKUP 工作表函数具有矢量形式和数组形式。矢量形式的 LOOKUP 可在一行或一列区域(称为矢量)中查一个值,然后从另外的一行或一列区域中的相同位置返回一个值。LOOKUP 的另一种形式(数组形式)会自动查第一列或第一行。


LOOKUP 要求矢量的第一列(或数组形式下的第一列或第一行)以升序排序。以下信息说明了不同的公式,它们可用于返回由 VLOOKUP 返回的那些信息,且无需对表的第一列进行排序。
更多信息
可以使用 INDEX MATCH 函数的组合、OFFSET MATCH 函数的组合、HLOOKUP VLOOKUP 来提供与 LOOKUP 相同的功能。与 LOOKUP 函数不同的是,这些选择都无需对查表进行排序。
使用 INDEX MATCH
以下公式返回由 VLOOKUP 所返回的那些信息,且无需对表的第一列进行排序:
=INDEX(Table_Array,MATCH(Lookup_Value,Lookup_Array,0),Col_Index_Num)
其中:
Table_Array = 整个查表。 Lookup_Value = 要在“table_array”的第一列中 查的值。 Lookup_Array = 包含可能的查值的 单元格区域。 Col_Index_Num =“table_array”中的应为其返回 匹配值的列号。lookup函数查不正确
如果 Lookup_Array 中的任何单元格都与 Lookup_Value 不匹配,则该公式将返回 #N/A
使用 OFFSET MATCH
如果不确定“table_array”的完整地址,则可以使用 OFFSET 函数,因为它使用 MATCH 函数在“lookup_array”中查“lookup_value”的位置。在以下函数中,“offset_col”参数使用表的左上角单元格作为“top_cell”,并返回您所要的由 MATCH(偏移行)和偏移列确定的值:
=OFFSET("top_cell",MATCH("lookup_value","lookup_array",0),"offset_col")
示例
A1:Name  B1:Dept  C1:Age
A2:Henry  B2:501 C2: 28
A3:Stan B3:201 C3: 19
A4:Mary B4:101 C4: 22
A5:Larry B5:301 C5: 29
因为“Name”区域未排序,所以使用 VLOOKUP Mary 的年龄会返回 28Henry 的年龄)。要查 Mary 的年龄,请使用以下函数:
=OFFSET(A1,MATCH("Mary",A2:A5,0),2)
此函数返回 22
HLOOKUP VLOOKUP
如果在 Microsoft Excel 中查完全匹配项,则不必对查表的第一列进行排序就能使用 VLOOKUP HLOOKUP 函数。要查完全匹配项,请将 VLOOKUP HLOOKUP 的第四个参数指定为 FALSE。如果忽略第四个参数,或者将此参数指定为 TRUE,则必须对表的第一列进行排序。前面说明的 OFFSET 函数在 Microsoft Excel 中也能用,但并不是必要的。


注意:请使用 VLOOKUP HLOOKUP 函数而不使用 LOOKUP 的数组形式,原因是 VLOOKUP HLOOKUP 不需要对查表进行排序(如果 range_lookup 参数为 FALSE 的话)。

有关在 Microsoft Excel 中如何使用 VLOOKUP 函数查完全匹配项的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
181213 (support.microsoft/kb/181213/) 如何使用 VLOOKUP HLOOKUP 查完全匹配项

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。