Excel实现排序/分组排序

工作中经常使用Excel的同学可能会遇到这个问题,Excel如何实现排序,或者是分组排序?下面介绍几种方法。

1. 简单排序

image.png

如上图数据,想要实现按照销量进行排名,可以选择的方法有:

  1. 对销量进行降序排列,然后直接新加一列,从1开始填充序列即可
image.png
  1. 使用rank公式,rank返回某数字在一列数字中相对于其他数值的大小排名,rank(数字,一列数据,(排序方式))
image.png

rank公式的第三个参数默认是0,升序排名,也就是将最大值排在第一名,最小值排在最后一名,
而参数改为1,则表示降序排名,也就是将最大值排在最后一名,最小值排在第一名;

image.png

需要注意的是,rank对于相同的值给与的排名是相同的,同时会跳过下一个排名,如图所示,F列的排名跳过了第七名,G列的排名跳过了第十七名;

image.png

2. 分组排序

  1. 使用自定义排序,销量的升降序根据需要来进行


    image.png

排序完成后,在H1单元格输入数字1,在H2单元格输入公式 =if(B3=B2,H2+1,1),下拉公式即可

image.png

这样就实现了对销量按照区域、品牌的分组排序,需要注意的是,使用这种方法排序万后,应将公式粘贴为值,以免因后续操作导致排名出问题;

  1. 使用sumproduct函数实现分组排名:
image.png

简单说一下sumproduct函数,该函数返回相应的数组或区域乘积的和,接收最少一个参数

image.png
image.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,

image.png

这样就计算出来第一行数据组内排名了,以此类推,下拉公式即可

你可能感兴趣的:(Excel实现排序/分组排序)