筛选出成绩排名前 n 的学生,并按成绩降序排列

这个公式 =SORT(FILTER($A$2:$B$17, $B$2:$B$17>=LARGE($B$2:$B$17, $E$1)), 2, -1) 的作用是 筛选出成绩排名前N的学生,并按成绩降序排列。下面逐步拆解它的各个部分:


1. LARGE($B$2:$B$17, $E$1)

  • 作用:返回指定范围内第N大的值。
  • 参数
    • $B$2:$B$17:成绩列(B2到B17)。
    • $E$1:指定要取第几大的值(这里是3,即第3高的成绩)。
  • 示例
    如果 $E$1=3LARGE 会返回第3高的成绩(比如99、100、90中的第3高是90)。

2. FILTER($A$2:$B$17, $B$2:$B$17>=LARGE(...))

  • 作用:筛选出成绩≥第N大值的所有学生数据。
  • 参数
    • $A$2:$B$17:原始数据范围(姓名和成绩)。
    • $B$2:$B$17>=LARGE(...):条件(成绩≥第N大的值)。
  • 逻辑
    假设第3高的成绩是90,则筛选出所有成绩≥90的学生(如100、99、90等)。

3. SORT(..., 2, -1)

  • 作用:将筛选结果按指定列降序排列。
  • 参数
    • 第1参数:FILTER 返回的结果。
    • 2:按第2列(成绩)排序。
    • -1:降序排列(1为升序)。
  • 结果示例
    输出按成绩从高到低排列的姓名和成绩,例如:

孙老三 94
赵老一 81
郑老七 81


---

### **公式整体逻辑**
1. **找阈值**:用 `LARGE` 确定第N名(如第3名)的成绩值(如90)。  
2. **筛选数据**:用 `FILTER` 提取所有成绩≥90的学生。  
3. **排序结果**:用 `SORT` 将筛选结果按成绩从高到低排列。

---

### **适用场景**
- 动态获取前N名(如TOP 3、TOP 5)的学生名单。
- 自动更新:当原始数据或`$E$1`的值变化时,结果会实时调整。

---

### **注意事项**
1. **Excel版本**:需支持动态数组的Excel 365或2021版。旧版需用其他方法(如`INDEX+MATCH`)。  
2. **并列排名**:如果第N名有并列(如两个90分),会全部输出(可能多于N条结果)。  
3. **绝对引用**(`$`):确保公式拖动时范围不变。

示例下载: https://download.youkuaiyun.com/download/zheng15ddi/90543130
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

課代表

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值