在Excel中,要对指定的值进行排序,用到最多的应该是Rank函数,其次应该是Sumproduct函数,Rank函数通常称之为美式排名、而Sumproduct函数通常称之为中国式排名。在Office365中,新增了Sort函数,其功能可以秒杀Rank和Sumproduct函数。 一、Sort函数功能及语法结构。 功能:对指定范围内的数据或数组进行排序。 语法结构:Sort(数组或数据区域,〔主要关键字的行数或列数〕,〔排序模式〕,〔排序方式〕)。 解读: 1、参数主要关键字的行数或列数是指在指定的数组或数据区域中以此列或此行为主要关键字进行排序,而此列在指定的数组或数据区域中所处的相对列数或行数。缺省情况下为第1行。 2、参数排序模式有2个值,分别为1和1,分别对应升序或降序模式。缺省情况下为升序。 3、参数排序方式有2个值,分别为TRUE或FALSE,TRUE表示按列排序,FALSE或缺省该参数时表示按行排序。 4、当缺省主要关键字的行数或列数、排序模式和排序方式时,表示将指定数组或数据区域中的第1列的值按升序排序。 二、Sort函数应用技巧。 (一)单字段排序。 1、对月薪升序排序。 方法: 在目标单元格中输入公式:SORT(G3:G12)。 解读: 从结果中可以看出,Sort函数和Rank、Sumproduct函数的排序结果是有很大的区别的,并不是返回该值在指定范围中的相对位置,而是对数据源中的值按照指定的方式进行了重排。 2、对月薪降序排序。 方法: 在目标单元格中输入公式:SORT(G3:G12,,1)。 解读: 1、如果要对指定的值降序排序,就要指定排序模式,当值为1时,表示降序排序。 2、学习到此处部分亲可能已经有了疑问,只是对月薪排序,其它列的值未发生变动,导致数据不匹配,没有实际意义,没有应用场景 从当前的结果看,确实是这样,但是我们仔细研读Sort函数的功能及语法结构就会发现,第一参数时数组或数据区域,并不是单纯的列。我们接着看下面的案例。 (二)多字段排序。 1、目的:以月薪为主要关键字进行升序排序。 从目的中可以看出,以月薪为主要关键字,意思就是保持数据的一致性。 方法: 在目标单元格中输入公式:SORT(B3:G12,6)。 解读: 1、公式中的参数6指在指定的数据范围B3:G12中,以第6列的值,即月薪为主要关键字进行排序。 2、所有行的数据保持了一致变化,和排序命令产生的效果一致。 2、目的:以月薪为主要关键字进行降序排序。 方法: 在目标单元格中输入公式:SORT(B3:G12,6,1)。 (三)混合字段排序。 目的:以月薪为主要关键字降序排序,以年龄为次要关键字进行升序排序。 方法: 在目标单元格中输入公式:SORT(B3:G12,{6,2},{1,1})。 解读: 1、公式的意思就是对第6列,即月薪列降序(1)排序,对第2列,即年龄升序(1)排序。 2、对指定的列的优先级按照指定的顺序依次从左向右执行。 最美尾巴: 从应用案例中可以看出,Sort函数与Rank和Sumproduct函数的排序还是有很大的区别的,Sort函数更贴近于排序命令,尤其是混合字段排序功能中体现的更为具体。而Rank和Sumproduct返回的是指定的值在指定范围中的相对位置。