数据排序,涉及到的范围很广,也经常要用到,除了简单的命令排序之外,其实还有多种排序方式可供选择。
一、Excel排序:Rank函数法(单列)。
作用:返回指定的数值在指定范围中的大小排名。
语法结构:=Rank(数值,数据范围,[排序方式])。其中“排序方式”分为“1”、“0”两种,其中“0”为降序,“1”为升序,省略时默认为“0”。
目的:对“成绩”进行排序。
方法:
在目标单元格中输入公式:=RANK(D3,D$3:D$9)或=RANK(D3,D$3:D$9,1)。
解读:
1、如果要对“成绩”进行升序排序,则公式为:=RANK(D3,D$3:D$9,1)。
2、Rank函数的排名也称为“美式排名”,原因在于当排序的值相同时,名次会“跳跃式”的增加,如示例中没有名次“5”。
二、Excel排序:Sumproduct函数法。
作用:返回相应区域或数组乘积的和。
语法结构:=Sumproduct(单元格区域或数组1,[单元格区域或数组2]……[单元格区域或数组N])。
目的:对“成绩”进行排序。
方法:
在目标单元格中输入公式:=SUMPRODUCT((D$3:D$9>D3)/COUNTIF(D$3:D$9,D$3:D$9))+1。
解读:
1、公式中D$3:D$9>D3比较形成一个以1和0为值的数组,COUNTIF(D$3:D$9,D$3:D$9)统计出每个值出现的次数;然后对应的值进行除法运算,形成一个以1和0为值的一维数组,最后进行求和。
2、公式末尾的1为辅助值,也很好理解,因为“自己不大于自己”。
3、如果要“升序”排序,则只需将公式调整为:=SUMPRODUCT((D3>D$3:D$9)/COUNTIF(D$3:D$9,D$3:D$9))+1即可。
三、Excel排序:IF函数法。
目的:小组内排序。
方法:
在目标单元格中输入公式:=IF(B3<>””,1,E2+1)。
解读:
1、公式=IF(B3<>””,1,E2+1)首先判断第一个合并单元格的值是否为空值,如果不为空,则返回1,否则返回当前单元格的上一单元格的值再+1。
2、结合具体的数值更好理解哦!
四、Excel排序:Max函数法。
目的:对不规则的合并单元格进行排序。
方法:
在目标单元格中输入公式:=MAX(A$2:A2)+1。
解读:
1、合并单元格的值存储于“左上角”的单元格,其它部分都为空值。
2、公式的参数从当前单元格的上一单元格开始,而Max函数是对数值而言的,所以第一次运算返回的值为1,后续不断+1,从而得到填充序号和排序的目的。
五、Excel排序:Large函数法。
作用:返回数组中的第K个最大值。
语法结构:=Large(数组或数据区域,索引值)。
目的:按从大到小的顺序返回成绩。
方法:
在目标单元格中输入公式:=LARGE(D$3:D$9,A3)。
解读:
1、从Large函数的功能及示例中可以看出,=Large(数组或数据区域,1)返回的值为当前数组或区域中的最大值,依次类推。
2、如果索引值小于等于0或大于数据个数,则返回错误#NUM!。
六、Excel排序:Small函数法。
功能:返回数据区域中的第K个最小值。
语法结构:=Small(数组或数据区域,索引值)。
目的:按从小到大的顺序返回成绩。
方法:
在目标单元格中输入公式:=SMALL(D$3:D$9,A3)。
解读:
1、从Large函数的功能及示例中可以看出,=Large(数组或数据区域,1)返回的值为当前数组或区域中的最小值,依次类推。
2、如果索引值小于等于0或大于数据个数,则返回错误#NUM!。