easyui 获取所在列的field_问与答88: 如何获取成绩排在最后5名的学生姓名?

学习Excel技术,关注微信公众号:

excelperfect

Q我有一个学生成绩表,如何使用公式获取成绩排在最后5名的学生姓名,如下图1所示。

c0f6c7d92b50a774ce2bb075785db1a1.png

图1

A可以对学生成绩从小到大进行排序,这样就可以看出排在最后的学生是哪几位了。将活动单元格置于列B中,单击功能区“开始”选项卡“编辑”组中的“排序和筛选——升序”,结果如下图2所示。

56da85b8dce60461b9d6ba41ed2692b3.png

图2

也可以使用公式来实现,如下图3所示,可随指定的人数而变化。

5af5439931cd54dafab35a271d4c7af9.gif

图3

在单元格E2中输入数组公式:

=IFERROR(INDEX($A$1:$A$12,SMALL(IF($B$2:$B$12<=SMALL($B$2:$B$12,$D$2),ROW($A$2:$A$12),FALSE),ROW(A1))),"")

下拉至相应的单元格为止。

公式中:

SMALL($B$2:$B$12,$D$2)

得到指定倒数名次的分数,示例中为倒数第5名,即92。

然后,公式中的:

$B$2:$B$12<=SMALL($B$2:$B$12,$D$2)

求得哪些成绩小于指定的倒数分数,示例中得到数组:

{FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;TRUE;TRUE}

代入:

IF($B$2:$B$12<=SMALL($B$2:$B$12,$D$2),ROW($A$2:$A$12),FALSE)

得到排在倒数的分数所在的行数和FALSE组成的数组:

{FALSE;3;FALSE;5;FALSE;FALSE;FALSE;9;FALSE;11;12}

作为SMALL函数的参数,求出ROW(A1)即第1个最小值所在的行:

SMALL({FALSE;3;FALSE;5;FALSE;FALSE;FALSE;9;FALSE;11;12},1)

3

当将公式向下拖时,ROW(A1)会变成ROW(A2)、ROW(A3)、…,从而求出第2小、第3小、…的值所在的行。

再将结果代入INDEX函数获取对应的姓名:

INDEX($A$1:$A$12,3)

得到:

桑梓儿

注:本文配套示例工作簿在 知识星球App : 完美Excel社群 提供下载。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。

4712a88bb018ba66ae87f52311a43881.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值