📅  最后修改于: 2020-12-01 05:52:53             🧑  作者: Mango
您可以使用Excel函数-
您还可以结合使用这些功能,以根据输入的内容获得所需的结果。
VLOOKUP函数的语法是
VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])
哪里
lookup_value-是您要查找的值。 Lookup_value可以是一个值或对单元格的引用。 Lookup_value必须在table_array中指定的单元格范围的第一列中
table_array-是VLOOKUP将在其中搜索lookup_value和返回值的单元格范围。 table_array必须包含
第一列中的lookup_value,以及
您要查找的返回值
注意-包含lookup_value的第一列可以按升序排序,也可以不按升序排序。但是,结果将基于此列的顺序。
col_index_num-是table_array中包含返回值的列号。表数组最左列的数字以1开头
range_lookup-是一个可选的逻辑值,它指定您是要VLOOKUP查找完全匹配还是近似匹配。 range_lookup可以是
省略,在这种情况下,假定为TRUE,并且VLOOKUP尝试找到近似匹配项
为TRUE,在这种情况下,VLOOKUP尝试查找近似匹配。换句话说,如果找不到完全匹配的内容,则返回小于lookup_value的下一个最大值
FALSE,在这种情况下,VLOOKUP尝试查找完全匹配
1,在这种情况下,假定为TRUE,VLOOKUP尝试查找近似匹配项
0,在这种情况下,假定为FALSE,并且VLOOKUP尝试查找完全匹配
注–如果忽略range_lookup或TRUE或1,则仅当table_array中的第一列以升序排序时,VLOOKUP才能正常工作。否则,可能导致错误的值。在这种情况下,请将FALSE用于range_lookup。
考虑一个学生成绩单。您可以使用VLOOKUP从包含分数区间和及格类别的数组中获得相应的成绩。
table_array-
请注意,根据其获得成绩的第一列标记按升序排序。因此,将TRUE用作range_lookup参数,您可以获得所需的近似匹配。
将此数组命名为Grades 。
以此方式命名数组是一个好习惯,这样您就不必记住单元格范围了。现在,您可以按照以下方式查找分数列表的等级-
如您所见,
col_index_num-表示table_array中返回值的列为2
range_lookup为TRUE
table_array等级中包含查找值的第一列按升序排列。因此,结果将是正确的。
您还可以获取近似匹配的返回值。即VLOOKUP计算如下-
Marks | Pass Category |
---|---|
< 35 | Fail |
>= 35 and < 50 | Third Class |
>= 50 and < 60 | Second Class |
>=60 and < 75 | First Class |
>= 75 | First Class with Distinction |
您将获得以下结果-
考虑一个包含每个产品的产品ID和价格的产品列表。每当启动新产品时,产品ID和价格将添加到列表的末尾。这意味着产品ID不必按升序排列。产品列表可能如下所示-
table_array-
将此数组命名为ProductInfo。
您可以使用VLOOKUP函数获得给定产品ID的产品价格,因为产品ID位于第一列。价格在第3列中,因此col_index_ num应该为3。
正确答案是来自ProductInfo数组的是171.65。您可以检查结果。
您发现自己得到了-
这是因为,ProductInfo数组中的第一列未按升序排序。因此,请记住在数据未排序时使用FALSE。
如果数据是行而不是列,则可以使用HLOOKUP函数。
让我们以产品信息为例。假设数组如下所示-
将此数组命名为ProductRange。给定具有HLOOKUP函数的产品ID,您可以找到产品的价格。
HLOOKUP函数的语法是
HLOOKUP (lookup_value, table_array, row_index_num, [range_lookup])
哪里
lookup_value-是在表的第一行中找到的值
table_array-是在其中查找数据的信息表
row_index_num-是table_array中的行号,将从中返回匹配值
range_lookup-是一个逻辑值,它指定您是要HLOOKUP查找完全匹配还是近似匹配
range_lookup可以是
省略,在这种情况下,假定为TRUE,并且HLOOKUP尝试查找近似匹配项
TRUE,在这种情况下,HLOOKUP尝试查找近似匹配。换句话说,如果找不到完全匹配的内容,则返回小于lookup_value的下一个最大值
FALSE,在这种情况下,HLOOKUP尝试查找完全匹配
1,在这种情况下,假定为TRUE,并且HLOOKUP尝试查找近似匹配项
0,在这种情况下,假定为FALSE,并且HLOOKUP尝试查找完全匹配
注-如果range_lookup为Omitted或TRUE或1,则仅当table_array中的第一列以升序排序时,HLOOKUP才能正常工作。否则,可能导致错误的值。在这种情况下,请将FALSE用于range_lookup。
您可以使用HLOOKUP函数获得给定产品ID的产品价格,因为产品ID位于第一行。价格在第3行,因此row_index_ num应该为3。
ProductRange数组的正确答案是171.65。您可以检查结果。
您观察到,就像在VLOOKUP的情况下,
range_lookup为FALSE时的正确结果,并且
range_lookup为TRUE时错误的结果。
这是因为ProductRange数组中的第一行未按升序排序。因此,请记住在数据未排序时使用FALSE。
考虑在VLOOKUP中使用的学生分数示例。假设您将数据放在行中,而不是列中,如下表所示:
table_array-
将此数组命名为GradesRange。
注意,根据其获得成绩的第一行标记按升序排序。因此,将HLOOKUP与TRUE一起用于range_lookup参数,即可获得具有近似匹配的成绩,这是必需的。
如您所见,
row_index_num-表示table_array中返回值的列为2
range_lookup为TRUE
table_array成绩中包含查找值的第一列按升序排列。因此,结果将是正确的。
您还可以获取近似匹配的返回值。即HLOOKUP计算如下-
Marks | < 35 | >= 35 and < 50 | >= 50 and < 60 | >=60 and < 75 | >= 75 |
---|---|---|---|---|---|
Pass Category | Fail | Third Class | Second Class | First Class | First Class with Distinction |
您将获得以下结果-
当您具有数据数组时,可以通过指定数组中该值的行号和列号来检索数组中的值。
考虑以下销售数据,您可以在其中找到列出的销售人员在北部,南部,东部和西部地区的销售情况。
使用INDEX函数,您可以找到-
您将获得以下结果-
假设您不知道销售人员的行号和区域的列号。然后,您需要先找到行号和列号,然后才能使用index函数检索值。
您可以使用MATCH函数执行此操作,如下一节所述。
如果您需要某个项目在某个范围内的位置,则可以使用MATCH函数。您可以结合使用MATCH和INDEX函数,如下所示:
您将获得以下结果-