经理:“来,给下面的表格排个名字,给你10秒钟”
我:“。。。。。”
常规方法是对C列降序排列,然后从1开始填充序列
但是该法会时灵时不灵!
比如这张表有些员工业绩重复,名次应当一致,但结果显然不尽如人意
那么该怎么办呢?
在我的视频课程《Excel通关秘籍》中,介绍过RANK函数
利用它我们就可以实现智能排名!!
该函数的参数如下:
RANK(排名的单元格,排名区域)
对于上面那种情况,我们只需输入:=RANK(C2,$C$2:$C$16)
就可以快速完成排名了(排名区域通常采用“绝对引用”)
条条大路通罗马,能实现智能排名的不仅仅只有RANK函数
下面再给大家介绍两种方法:
COUNTIF函数
COUNTIF(计数区域,计数条件)常被用来计算区域中满足条件的单元格个数
例如我们只要输入:
=COUNTIF(C2:C16,">100")
该函数意义:可以计算出C2:C16,大于100的数据的个数为5个
在这个排名的案例中,我们可以输入:
=COUNTIF(C$2:C$16,">"&C2)+1
翻译过来就是:在C2:C16区域中,大于C2的单元格有多少个,那么C2的名次就是该个数+1
SUM函数
想不到吧,SUM函数居然还可以用来排序
解题思路同上:一列里边,比你大的有n个,那你就是排在第n+1名
具体的函数如下:
=SUM(N($C$2:$C$16>C2))+1
输入完函数后,我们只要按下【Ctrl+Shift+Enter】就搞定了
接着我们来解析下这个函数:
(长文分析预警)
=SUM(N($C$2:$C$16>C2))+1
【一】$C$2:$C$16>C2得到的是一组逻辑值:“TRUE或FALSE”
前面加上“N”函数就可以将其转成1或0;
【二】公式思路:如果$C$2:$C$16中有几个大于C2,再加1,就是它的排名。
比如:C2是最大的,那么
$C$2:$C$16>C2全是false
N($C$2:$C$16>C2)全是0
SUM(N($C$2:$C$16>C2))=0
加一还是等于一,它排名还是第一;
以此类推,例如C3,有7个比C3大的,就有7个TRUE
通过N函数转换成7个1,最后排名+1,就是8。
【三】N函数还可以用“--”(负负)来代替,
它也可以将文本数字、逻辑值转换成数值。
=SUM(--($C$2:$C$16>C2))+1
我们来看下GIF操作演示:
殊途同归,最简单的方法自然是RANK函数
它的两个兄弟“RANK.AVG”和“RANK.EQ”也推荐给大家
这两个函数用法与RANK相似,大家可自行尝试哦~