今日分享:如何实现excel自动排名?
这个问题是一位同事之前问我的。她的具体要求是:有好多门店每天都需要排名,而这个排名每天都要点排序才能实现。有没有什么函数或其它,链接数据过来后能自动排名?
坦白说,我当时第一反应觉得要用到VBA吧。但后面我仔细琢磨,其实用函数就能实现。
第二天,我把这个方法告诉同事。今天我自己又用到了,所以正好分享出来。
虚拟如下数据来说明:假设表中是某天各门店销售额数据,想以此作为数据源,每天只要更新它,即可将销售额前5名的门店实现自动排名,怎么做呢?
我们还是从需求出发:要实现自动排名。排名,我们知道,可以用rank函数。但自动排名如何实现呢?这里的”自动“是关键,也是难点。
怎么自动呢?按销售额的前5名。这其中前5名是一个固定需求,只是哪些门店销售额会排在前5名是不固定的。
所以,我们先按名次,将前5名及其门店、销售额的结构模拟出来。
这样模拟后,我们需求又可以进一步明确了:可以根据名次,去数据源中查找前5名的门店名称与销售额,这样就可以实现自动了。
可是数据源中没有名次呀,循着这个思路,我们就知道再往前一步要做什么了:在数据源中增加一列”名次“,便于查找。
至此,我们大致思路就有了。接下来,就来说具体操作。需求是以终为始,操作就反过来了,要从开始着手,所以,具体步骤为:
1. 在A列前面插入一列,命名为”名次“,并用rank函数,对销售额进行排名。(rank函数的具体用法在《投诉越少排名越前,rank函数助你实现逆排名》文章中分享过,这里不做说明)
2. 将A:C列作为数据源,对F、G两列用vlookup函数进行查找(关于vlookup函数如果你不会,可以自己先去学习下,我后面再找时间分享)。具体公式如下:
好,到这里,我们的问题就解决了。当然,还有点需要说明:大家可以看我当时发给同事的信息中有提到row函数,并且说的是添加两列辅助列,对吗?
这是更周全的考虑。因为可能会有这样一种情况,当不同门店的销售额相同时,为了正确显示排名需要考虑对销售额去重再排名,所以用row函数(关于row函数如果你不会,可以自己先去学习下,我后面再找时间分享)。具体操作如下:
今天的分享,除了思路非常关键,你还需要掌握rank函数、vlookup函数、row函数的用法,不然可能会吃力噢。
今天的分享就到这里,非常感谢你的耐心阅读,希望对你有所启发。