今天遇到一位朋友求助1个excel使用场景,要求某一列中最大值对应的列名称,具体案例如下:

案例场景

找出以下表格中每位同学成绩最好的科目,将科目名称展示出来

A B C D E F G H I
姓名 语文 数学 英语 物理 化学 生物 成绩最好的科目 成绩第二好的科目
陈明 89 75 84 71 68 69
李二 67 89 70 81 77 85
张宁 90 66 92 69 73 72
王强 53 64 43 55 34 59
吴欣 79 62 88 58 63 74
赵九 76 46 60 51 48 44
钱三 70 38 58 37 33 31

答案

  • 在H列输入以下公式,然后下拉,得到每位学生成绩最好的科目

=INDIRECT(ADDRESS(1,MATCH(MAX(A2:G2),A2:G2,0),1))

  • 在I列输入以下公式,然后下拉,得到每位学生成绩第二好的科目

=INDIRECT(ADDRESS(1,MATCH(LARGE(A2:G2,2),A2:G2,0),1))

解析

  • Max函数:用于求向量、数组或者矩阵的最大元素,或几个指定值中的最大值。 用法:MAX(A:B)返回A和B中的最大值。 =MAX(A2:A6) 区域 A2:A6 中的最大值。 =MAX(A2:A6, 30) 区域 A2:A6 和数值 30 之中的最大值。

  • Large函数:返回值在数组或数据单元格区域中的位置(从大到小排)。
    用法:LARGE(array,k) Array和必需。 需要确定第 k 个最大值的数组或数据区域。
    如果区域中数据点的个数为 n,则函数 LARGE(array,1) 返回最大值,函数 LARGE(array,n) 返回最小值。

  • Match函数:返回指定数值在指定数组区域中的位置。MATCH函数是Excel主要的查找函数之一。 用法 :MATCH(lookup_value, lookup_array, [match_type]) lookup_value必需参数,需要在 lookup_array 中查找的值。例如,如果要在电话簿中查找某人的电话号码,则应该将姓名作为查找值,但实际上需要的是电话号码。 lookup_value 参数可以为值(数字、文本或逻辑值)或对数字、文本或逻辑值的单元格引用。 lookup_array必需参数,要搜索的单元格区域。 match_type可选参数,数字 -1、0 或 1。match_type 参数指定 Excel 如何在 lookup_array 中查找 lookup_value 的值。此参数的默认值为 1。

  • ADDRESS函数:按照给定的行号和列标,建立文本类型的单元格地址。 用法:ADDRESS(row_num,column_num,abs_num,a1,sheet_text)
    Row_num 在单元格引用中使用的行号。 Column_num 在单元格引用中使用的列标。

  • INDIRECT函数:返回由文本字符串指定的引用。 此函数立即对引用进行计算,并显示其内容。 如果需要更改公式中对单元格的引用,而不更改公式本身,请使用函数 INDIRECT。 用法:INDIRECT(ref_text,[a1]) Ref_text 为对单元格的引用,此单元格可以包含 A1-样式的引用、R1C1-样式的引用、定义为引用的名称或对文本字符串单元格的引用。如果 ref_text 不是合法的单元格的引用,函数 INDIRECT 返回错误值#REF!或#NAME?。 如果 ref_text 是对另一个工作簿的引用(外部引用),则工作簿必须被打开。如果源工作簿没有打开,函数 INDIRECT 返回错误值#REF!。 a1 为一逻辑值,指明包含在单元格ref_text 中的引用的类型。 如果 a1 为 TRUE 或省略,ref_text 被解释为 A1-样式的引用。 如果 a1 为 FALSE,ref_text 被解释为 R1C1-样式的引用。

版权声明:本站部分文章为原创,部分内容来自网络转载,如有任何问题,可联系本站本站管理员邮箱!

本文链接:http://www.btdiv.com/article/15/