EXCEL里怎样引用某数值对应的另一列的值?

A列是人名,张三、李四、王五、赵六
B列是分数,40,30,60,50
C列是根据分数得出的排名,3,4,1,2

现在要在某单元格,比如$E$6里根据排名引用第一名的人名,在$E$7里引用第二名的名字,该用什么公式?

多谢了!!

一、这可以用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,))

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-20
简单,光标定位在$E$6,在编辑栏输入“=”,点第一名的人名,下拉就OK了。
第2个回答  2010-04-20
如果没有并列排名

e6 =index(a:a,match(row(a1),c:c,0)),下拉本回答被提问者采纳
第3个回答  2010-04-20
=index(a:a,match(1,c:c,0))
下拉复制格式