excel每个姓名的对应成绩如何排序,excel表格怎么对应名字和成绩排序

首页 > 实用技巧 > 作者:YD1662023-11-30 05:50:05

问题描述

【问题】班级学生各科目成绩数据(无序且成绩有重复值)如下图,现要求排序出各考试科目前5名的学生姓名和考试成绩。

excel每个姓名的对应成绩如何排序,excel表格怎么对应名字和成绩排序(1)

------------------------------------

问题分析

【分析1】题目要求前5名,需要使用LARGE函数来处理

【分析2】由于成绩数据存在重复值,想要并列排序需要使用“先放大后缩小”的方法加以区分,放大使用乘数加个数,缩小使用MOD函数

【分析3】返回的姓名和成绩可能存在并列关系,所以不能使用常规的查找函数(VLOOKUP或者LOOKUP),需要使用INDEX函数(OFFSET函数也可以)

以上,思路已理清,下面开始编写公式解决问题~~

------------------------------------

问题解决

【步骤1】构建排名区域,添加科目单元格下拉列表

excel每个姓名的对应成绩如何排序,excel表格怎么对应名字和成绩排序(2)

-----------------------------------

【步骤2】编写公式

姓名=INDEX($B$2:$B$55,MOD(LARGE((($A$2:$A$55=$F$1)*$C$2:$C$55)*100 ROW($A$1:$A$54),ROW(A1)),100))

成绩=INDEX($C$2:$C$55,MOD(LARGE((($A$2:$A$55=$F$1)*$C$2:$C$55)*100 ROW($A$1:$A$54),ROW(A1)),100))

PS:上述两个公式为数组公式,需同时按下Ctrl Shift Enter三键执行运算

两公式原理相同,以姓名列公式为例,从内而外,公式含义如下:

公式含义解释:

①.($A$2:$A$55=$F$1)*$C$2:$C$55:返回C列中考试科目为F1的成绩

②.(...)*100 ROW($A$1:$A$54):将考试成绩放大后进行区分(乘以100后加上行序号),实现相同成绩可以并列排序

③.LARGE(...,ROW(A1)):对放大后的成绩进行从大到小的顺序排序,下拉复制公式后,ROW(A1)变成ROW(A2)、ROW(A3)...,分别代表第一大,第二大,第三大...,也就是第一名、第二名,第三名...

④.MOD(...,100):对放大后的成绩进行缩小求余,所得余数即等于该成绩所在位置编号

⑤.INDEX($B$2:$B$12,...):根据第4步中返回的位置编号,在B2:B12提取对应的成绩数据

-----------------------------------

【步骤3】设置条件格式,公式:=$A2=$F$1,突出显示各科目数据

excel每个姓名的对应成绩如何排序,excel表格怎么对应名字和成绩排序(3)

------------------------------------

最终效果

【效果】选择不同科目,函数自动返回该科目中前5名的学生姓名和成绩

excel每个姓名的对应成绩如何排序,excel表格怎么对应名字和成绩排序(4)

-------------------------------------

清楚了函数公式的设计思路,小伙伴们可以把上文中的科目条件替换成自己工作中的排名条件,也可以将LARGE函数换成SMALL函数从小到大进行排名。只要掌握了核心思路,千变万化,唯我独尊,勤奋好学的你赶快自己动手试试吧~~

excel每个姓名的对应成绩如何排序,excel表格怎么对应名字和成绩排序(5)

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.