今天遇到一位朋友求助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.juqingne.com/article/15/
wrBEIRqX
20 楼 - 3 周前
e