▲本期分享技能请观看
前两天有个朋友问我怎么快速找出成绩排名后N位的学员名单,经过周密考虑,我觉得使用SMALL函数是再好不过的了,所以第一时间分享给大家,希望对有需要的朋友有所参考和帮助。
先来看看函数解析,2个参数:SMALL(array,k)
① Array:需要找到第 k 个最小值的数组或单元格区域。
② k:要返回的数据在数组或单元格区域中的位置(从小到大)。
友情提示:(详细解释请观看本期视频)
① 若 array 为空,则 SMALL 返回 错误值 #NUM!。
② 若k ≤ 0 或 k 超过了数据点个数,则 SMALL 返回错误值 #NUM!。
③ 若 n 为数组中的数据点个数,则 SMALL(array,1) 等于最小值,SMALL(array,n) 等于最大值。
让我们通过案例来看看怎么灵活使用SMALL函数吧。
案例:根据下列员工考核成绩表列出各部门考核成绩在后5名的员工名单(如红色框选部分)。
上一次分享我们学过了怎么用countifs进行按部门排名,如果您还不清楚如何操作,请参见上期教程:Excel026-让排名不再成为你的困扰-RANK。
今天我们将用D列已经做好的排名来进行结果的验证。让我们来看看具体怎样操作吧。
① 在I1:M1区域录入所需部门名称。
② 添加辅助列E列,命名为成绩2(辅助列)。
③ 添加辅助列F列,命名为姓名2(辅助列)。
④ 在E2单元格录入公式:=C2*10^4+ROW(),下拉填充公式。这里将原来的成绩扩大1万倍并加上行号,确保每个成绩都是独一无二的,并且不会影响各成绩之间的大小关系,这样我们通过成绩用VLOOKUP函数查询姓名的时候才能正确找出其对应的姓名。
⑤ 在F2单元格录入公式:=A2,下拉填充公式。F列的员工姓名等于A列的员工姓名。由于我们还没有学过VLOOKUP的逆向查询,在此添加姓名的辅助列通过E列的成绩用VLOOKUP函数获得F列的员工姓名。
如下图所示:
⑥ 在I2单元格录入公式:=VLOOKUP(SMALL(IF($B$2:$B$47=I$1,$E$2:$E$47,""),ROW(1:1)),$E:$F,2,0),CTRL+SHIFT+ENTER三键结束,向下向右填充公式即可。
最终结果显示在下图红色框选区域。我们可以通过筛选D列来验证各个部门后5名是不是这些员工。此处不再赘述,留给大家自己去验证。
公式解析:
① IF($B$2:$B$47=I$1,$E$2:$E$47,"")用来表示如果$B$2:$B$47区域有等于监察部的,就显示$E$2:$E$47的成绩,否则就显示为空。结果如下:
{960002;"";"";"";"";"";"";560009;"";"";"";590013;"";970015;620016;"";"";"";"";710021;"";730023;"";710025;790026;"";"";"";790030;"";"";"";"";510035;"";"";"";530039;"";"";"";"";"";"";"";""}
② ROW(1:1)用来创建动态的数组,公式下拉后会动态显示1,2,3,4,5用来作为SMALL函数的第二参数。
③ SMALL(IF($B$2:$B$47=I$1,$E$2:$E$47,""),ROW(1:1))用来找到监察部第1个、第2个……第5个最小值。
④ VLOOKUP 查询函数通过E列的成绩,查询F列的姓名。想了解VLOOKUP的使用方法请参见往期教程:Excel012-Vlookup不为人知的秘密。
今天的内容就分享到这里,非常感谢大家一直以来对布衣公子的关注和支持!如果您有任何PPT和Excel技能方面的问题,您可以给公子留言,有可能您的问题就会在下一个视频中出现!
本篇文章匹配的相关PPT、视频、Excel演示课件及WORD教程下载:
https://pan.baidu.com/s/1nuW5S1b
往期教程:
Excel026-让排名不再成为你的困扰-RANK
Excel025-让你不再为大小写转换而苦恼-Upper&Lower&Proper
Excel024-有时候重复也不是一件坏事-REPT
Excel023-SUBSTITUTE也是替换函数的不二之选
Excel022-替换函数中的战斗机- Replace
Excel021-有模糊查找功能的函数SEARCH
Excel020-查找函数哪家强?FIND帮你忙
Excel019-文本长度的度量器-LEN &LENB
Excel018-文本截取函数三剑客-MID
Excel017-文本截取函数三剑客-RIGHT
……
更多技能分享请您后台回复「目录」查看
合集赠品已免费升级至25G
合集详情:布衣公子两年PPT作品大合集
▼单击「阅读原文」进入传送门