工作中经常使用Excel的同学可能会遇到这个问题,Excel如何实现排序,或者是分组排序?下面介绍几种方法。
1. 简单排序
![](https://img.haomeiwen.com/i6533112/a09a4a45f1887905.png)
如上图数据,想要实现按照销量进行排名,可以选择的方法有:
- 对销量进行降序排列,然后直接新加一列,从1开始填充序列即可
![](https://img.haomeiwen.com/i6533112/276252342585e09c.png)
- 使用rank公式,rank返回某数字在一列数字中相对于其他数值的大小排名,rank(数字,一列数据,(排序方式))
![](https://img.haomeiwen.com/i6533112/ea85aeaa3645423b.png)
rank公式的第三个参数默认是0,升序排名,也就是将最大值排在第一名,最小值排在最后一名,
而参数改为1,则表示降序排名,也就是将最大值排在最后一名,最小值排在第一名;
![](https://img.haomeiwen.com/i6533112/25f850dc45994e59.png)
需要注意的是,rank对于相同的值给与的排名是相同的,同时会跳过下一个排名,如图所示,F列的排名跳过了第七名,G列的排名跳过了第十七名;
![](https://img.haomeiwen.com/i6533112/d4a68522083ee9af.png)
2. 分组排序
-
使用自定义排序,销量的升降序根据需要来进行
image.png
排序完成后,在H1单元格输入数字1,在H2单元格输入公式 =if(B3=B2,H2+1,1),下拉公式即可
![](https://img.haomeiwen.com/i6533112/d2e2ff130a0df626.png)
这样就实现了对销量按照区域、品牌的分组排序,需要注意的是,使用这种方法排序万后,应将公式粘贴为值,以免因后续操作导致排名出问题;
- 使用sumproduct函数实现分组排名:
![](https://img.haomeiwen.com/i6533112/1aa3ffbe2b68b173.png)
简单说一下sumproduct函数,该函数返回相应的数组或区域乘积的和,接收最少一个参数
![](https://img.haomeiwen.com/i6533112/a3170e29ceccf57f.png)
![](https://img.haomeiwen.com/i6533112/1fb34e9295809f70.png)
=SUMPRODUCT(($A$2:$A$23=A2)*($B$2:$B$23=B2)*($D$2:$D$23>=D2))
对于在这里的写法,我是这样理解的
$A$2:$A$23=A2 返回的是一个数组区域,判断是否等于A2,结果是{TRUE,False,False...}
同样的 $B$2:$B$23=B2 也是返回 一个数组区域,结果类似 {TRUE,False....}
$D$2:$D$23>=D2 判断单元格的值是否大于D2,返回结果 {TRUE,False...}
最终返回的是三个大小一样的数组区域,*号将三个数组相乘后求和 , Excel中TRUE表示1,False表示0,
![](https://img.haomeiwen.com/i6533112/fa457b46612c6d1c.png)
这样就计算出来第一行数据组内排名了,以此类推,下拉公式即可
网友评论