学会RANK系列和COUNTIF组合进行排序(排名不重复)

学会RANK系列和COUNTIF组合进行排序(排名不重复)

首页休闲益智填充排序更新时间:2024-04-30

相信,我们经常会对一组数据进行排序,不管是升序,或者是倒序。这时,我们通常会采用,EXCEL的筛选和排序功能。这样很方便,而且一下就能获得我们所需的结果。但是,有时,你要分析的数据是按照一定顺序的排列的。这时这种做法可能筛选完排序以后,回不到之前的顺序了。这时,我们可以利用RANK和COUNTIF函数来达到我们的目的,老规矩,上案例。说的再多。也不如一个案例来的实在。

图1 案例完成效果

在案例中,我们点进单元格中,然后点击“Enter”,我们可以看到黄色区域,在销售额变化的同时,黄色区域中姓名和销售额都在依据排名进行相应变化。

如何实现上面的案例,先给大家讲如何做,案例中所需的函数和讲解在最后。

第一步,我们来准备了一个只有姓名的空表格

图1 只有姓名的空表格

C列的销售额的公式:=1000*(RANDBETWEEN(1,5))

图2 生成随机数

D列的公式为:=RANK(C3,$C$3:$C$8) 注意,公式中红色部分为绝对引用,绝对引用不会因公式 的自动填充而改变。

效果图:

图3 RANK函数排序完成效果

E列公式为:=RANK.EQ(C3,$C$3:$C$8,0)

F列公式为:=RANK.EQ(C3,$C$3:$C$8,1)

效果图:

图4 RANK.EQ的两种排序完成效果

G列公式为:=RANK.AVG(C3,$C$3:$C$8,1)

H列公式为:=RANK.AVG(C3,$C$3:$C$8,0)

效果图:

图5 RANK.AVG的两种排序完成效果

下面的I列和J列的需求,是我们今天要讲的重点。如何利用RANK或者RANK.EQ和COUNTIF实现不重复的排名。

上公式

I3:=RANK(C3,$C$3:$C$8) COUNTIF(C3:$C$8,C3)-1

I4:=RANK(C4,$C$3:$C$8) COUNTIF(C4:$C$8,C4)-1

J3:=RANK(C3,$C$3:$C$8) COUNTIF(C3:$C$3,C3)-1

J4:=RANK(C4,$C$3:$C$8) COUNTIF($C$3:C4,C4)-1

效果图:

图6 不允许有重复排名的正序和倒序效果

本例中,我们一共贴出了4个公式。不同的地方,我已经给大家用红色标记出来了

这里我们分析I列的COUNTIF(C3:$C$8,C3)和COUNTIF(C4:$C$8,C4)的代表的意义。

COUNTIF(C3:$C$8,C3) 代表的是C3到C8单元格中的值等于C3的个数。

COUNTIF(C4:$C$8,C4) 代表的是C4到C8单元格中的值等于C4的个数。

现在我们来假设一种情况。C3到C8中只有C4和C3是相等的。

这样我们可以得出COUNTIF(C3:$C$8,C3)=2 而COUNTIF(C4:$C$8,C4) =1 。

我们可以延伸出在公式:

I3:=RANK(C3,$C$3:$C$8) COUNTIF(C3:$C$8,C3)-1

I4:=RANK(C4,$C$3:$C$8) COUNTIF(C4:$C$8,C4)-1

当C3和C4 值相等的情况下,I3始终会比I4大1。因为自动填充公式的特性,我们可以知道单元格I5的公式:I5:=RANK(C5,$C$3:$C$8) COUNTIF(C5:$C$8,C5)-1 到这里,大家已经发现规律了。在C3、C4、C5的相等的情况下。I3 = I4 1=I5 2 这就实现了我们排名不重复的排序要求。

这里,就不对J列进行分析了,给大家留个小作业。大家可以试着对J列进行分析,如果有更好的方法,可以在评论区告诉我。

我们接着往下实现案例。

K3:="第" & I3 & "名"

A3:=I3

N3:=VLOOKUP(M3,$A$3:$B$8,2,0)

O3:=VLOOKUP(M3,$A$3:$C$8,3,0)

实现效果如下:

图7 最后实现效果图

看到这里,相信大家对于RANK系列函数排序有一定的了解了。

我们来看一下我们实现上述案例所需要熟悉的函数,同时我们来简单了解一下:

1、RANK系列 RANK、RANK.EQ、RANK.AVG

在EXCEL中RANK、RANK.EQ、RANK.AVG前2个参数是一样的。

=RANK(NUMBER,REF) 返回NUMBER在REF中的排名,正序

=RANK.EQ(NUMBER,REF[,ORDER]) 返回NUMBER在REF中的排名,默认正序,Order= 0 倒序,1或隐藏为正序。相同排名,显示相同排名(整数)

=RANK.AVG(NUMBER,REF[,ORDER]) 返回NUMBER在REF中的排名,默认正序,Order= 0 倒序,1或隐藏为正序。相同排名,显示相同排名(平均数)

NUMBER:所需排列的单个数据

REF:排列的一组数据

ORDER:可省略,代表的是排序方式,值等于0时降序,1为正序或者省略默认为正序

2、RANDBETWEEN(bottom,top) 返回bottom和top之间的整数

bottom:可为整数或小数,要比参数top小否则会报错,整数时包含bottom,小数时,比如11.5,

top:可为整数或小数整数时包含top。小数时,范围为top整数部分加1

3、COUNTIF(range,criteria) 返回满足条件的单元格个数

range:单元格区域

criteria:条件

4、VLOOKUP(lookup_value,Table_array,col_index_num,[range_lookup])

lookup_value:所需查找的值

Table_array:查询的数据表

col_index_num:列号

range_lookup:可以省略。代表的是匹配方式,当值为0或FALSE是精确匹配,值为1、TRUE或者省略是近似匹配

最后,感谢大家的观看,我是EK。如果上述内容能够帮助到你们,希望你们能点赞,关注,评论,你们不清楚的地方我会尽力为大家解答,谢谢大家的支持。我会给大家带来更多关于EXCEL的小技巧。

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved