发布网友 发布时间:2022-04-28 19:58
共4个回答
热心网友 时间:2022-05-18 21:55
一、这可以用VLOOKUP函数或用INDEX函数配合MATCH函数来完成。
二、相关函数的定义
(1)VLOOKUP函数
在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。当比较值位于数据表首列时,可以使用函数 VLOOKUP 代替函数 HLOOKUP。
在 VLOOKUP 中的 V 代表垂直。
语法
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
Lookup_value 为需要在数组第一列中查找的数值。Lookup_value 可以为数值、引用或文本字符串。
Table_array 为需要在其中查找数据的数据表。可以使用对区域或区域名称的引用,例如数据库或列表。
如果 range_lookup 为 TRUE,则 table_array 的第一列中的数值必须按升序排列:…、-2、-1、0、1、2、…、-Z、FALSE、TRUE;否则,函数 VLOOKUP 不能返回正确的数值。如果 range_lookup 为 FALSE,table_array 不必进行排序。
通过在“数据”菜单中的“排序”中选择“升序”,可将数值按升序排列。
Table_array 的第一列中的数值可以为文本、数字或逻辑值。
文本不区分大小写。
Col_index_num 为 table_array 中待返回的匹配值的列序号。Col_index_num 为 1 时,返回 table_array 第一列中的数值;col_index_num 为 2,返回 table_array 第二列中的数值,以此类推。如果 col_index_num 小于 1,函数 VLOOKUP 返回错误值值 #VALUE!;如果 col_index_num 大于 table_array 的列数,函数 VLOOKUP 返回错误值 #REF!。
Range_lookup 为一逻辑值,指明函数 VLOOKUP 返回时是精确匹配还是近似匹配。如果为 TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值;如果 range_value 为 FALSE,函数 VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值 #N/A。
说明
如果函数 VLOOKUP 找不到 lookup_value,且 range_lookup 为 TRUE,则使用小于等于 lookup_value 的最大值。
如果 lookup_value 小于 table_array 第一列中的最小数值,函数 VLOOKUP 返回错误值 #N/A。
如果函数 VLOOKUP 找不到 lookup_value 且 range_lookup 为 FALSE,函数 VLOOKUP 返回错误值 #N/A。
(2)INDEX函数
返回指定的行与列交叉处的单元格引用。如果引用由不连续的选定区域组成,可以选择某一连续区域。
函数 INDEX 有两种语法形式:数组和引用。数组形式通常返回数值或数值数组;引用形式通常返回引用。
语法
引用形式
INDEX(reference,row_num,column_num,area_num)
Reference 对一个或多个单元格区域的引用。
如果为引用输入一个不连续的区域,必须用括号括起来。
如果引用中的每个区域只包含一行或一列,则相应的参数 row_num 或column_num 分别为可选项。例如,对于单行的引用,可以使用函数 INDEX(reference,,column_num)。
Row_num 引用中某行的行序号,函数从该行返回一个引用。
Column_num 引用中某列的列序号,函数从该列返回一个引用。
Area_num 选择引用中的一个区域,并返回该区域中 row_num 和 column_num 的交叉区域。选中或输入的第一个区域序号为
1,第二个为 2,以此类推。如果省略area_num,函数 INDEX 使用区域 1。
例如,如果引用描述的单元格为 (A1:B4,D1:E4,G1:H4),则 area_num 1 为区域 A1:B4,area_num 2 为区域 D1:E4,而 area_num 3 为区域 G1:H4。
说明
在通过 reference 和 area_num 选择了特定的区域后,row_num 和 column_num 将进一步选择指定的单元格:row_num 1 为区域的首行,column_num 1 为首列,以此类推。函数 INDEX 返回的引用即为 row_num 和 column_num 的交叉区域。
如果将 row_num 或 column_num 设置为 0,函数 INDEX 分别返回对整个列或行的引用。
Row_num、column_num 和 area_num 必须指向 reference 中的单元格;否则,函数 INDEX 返回错误值 #REF!。如果省略 row_num 和 column_num,函数 INDEX 返回由 area_num 所指定的区域。
函数 INDEX 的结果为一个引用,且在其他公式中也被解释为引用。根据公式的需要,函数 INDEX 的返回值可以作为引用或是数值。例如,公式 CELL("width",INDEX(A1:B2,1,2)) 等价于公式 CELL("width",B1)。CELL 函数将函数INDEX 的返回值作为单元格引用。而在另一方面,公式 2*INDEX(A1:B2,1,2) 将函数 INDEX 的返回值解释为 B1 单元格中的数字。
(3)MATCH函数
返回在指定方式下与指定数值匹配的数组中元素的相应位置。如果需要找出匹配元素的位置而不是匹配元素本身,则应该使用 MATCH 函数而不是 LOOKUP 函数。
语法
MATCH(lookup_value,lookup_array,match_type)
Lookup_value 为需要在数据表中查找的数值。
Lookup_value 为需要在 Look_array 中查找的数值。例如,如果要在电话簿中查找某人的电话号码,则应该将姓名作为查找值,但实际上需要的是电话号码。
Lookup_value 可以为数值(数字、文本或逻辑值)或对数字、文本或逻辑值的单元格引用。
Lookup_array 可能包含所要查找的数值的连续单元格区域。Lookup_array 应为数组或数组引用。
Match_type 为数字 -1、0 或 1。Match-type 指明 Microsoft Excel 如何在lookup_array 中查找 lookup_value。
如果 match_type 为 1,函数 MATCH 查找小于或等于 lookup_value 的最大数值。Lookup_array 必须按升序排列:...、-2、-1、0、1、2、...、A-Z、FALSE、TRUE。
如果 match_type 为 0,函数 MATCH 查找等于 lookup_value 的第一个数值。Lookup_array 可以按任何顺序排列。
如果 match_type 为 -1,函数 MATCH 查找大于或等于 lookup_value 的最小数值。Lookup_array 必须按降序排列:TRUE、FALSE、Z-A、...、2、1、0、-1、-2、...,等等。
如果省略 match_type,则假设为 1。
说明
函数 MATCH 返回 lookup_array 中目标值的位置,而不是数值本身。例如,MATCH("b",{"a","b","c"},0) 返回 2,即“b”在数组 {"a","b","c"} 中的相应位置。
查找文本值时,函数 MATCH 不区分大小写字母。
如果函数 MATCH 查找不成功,则返回错误值 #N/A。
如果 match_type 为 0 且 lookup_value 为文本,lookup_value 可以包含通配符、星号 (*) 和问号 (?)。星号可以匹配任何字符序列;问号可以匹配单个字符。
三、举例
(1)假设数值写在A列,对应的数据在B列,在C1单元格写入一个数值,要在D1单元格得到对应的B列的数据,则D1单元格写入公式
=VLOOKUP(C1,A:B,2,)
或
=INDEX(B:B,MATCH(C1,A:A,))
(2)假设数值写在A列,对应的数据在D列,在E1单元格写入一个数值,要在F1单元格得到对应的D列的数据,则F1单元格写入公式
=VLOOKUP(E1,A:D,4,)
或
=INDEX(D:D,MATCH(E1,A:A,))
热心网友 时间:2022-05-18 21:55
简单,光标定位在$E$6,在编辑栏输入“=”,点第一名的人名,下拉就OK了。热心网友 时间:2022-05-18 21:56
如果没有并列排名热心网友 时间:2022-05-18 21:56
=index(a:a,match(1,c:c,0))