排序神器! Excel新函数公式Sortby用法详解

以前工作,需要排序的时候,我们只能手动的去进行操作排序,但是当我们左边数据更新之后,我们又得手动的操作一次排序。针对这一痛点,Excel出来了一个排序新公式sortby,当我们设定好条件之后,左边数据变化,排序的结果也能随之变化。

微软Office LTSC 2021专业增强版 简体中文批量许可版 2024年09月更新

  • 类型:办公软件
  • 大小:2.2GB
  • 语言:简体中文
  • 时间:2024-09-12

查看详情

我们来看看实际案例:

前两天的文章我们分享了两个牛叉的数组公式,其中一个数组公式:

{=INDEX($A$2:$A$9,MATCH(LARGE($B$2:$B$9+0.1*ROW($B$2:$B$9),ROW()-1),$B$2:$B$9+0.1*ROW($B$2:$B$9),0))}

其主要实现了按B列降序对A列的重新排序。

公式可谓是又臭又长,很多小伙伴看了直呼头疼,公式原理详见之前的文章【哇,这是我见过最牛的数组公式,没有之一】

如果你的OFFICE版本是2021或365,那么这个问题就简单多了。

单元格直接输入公式:

=SORT(A2:B9,2,-1)

是的,没错,就是这么简单。

SORT函数语法

SORT函数一共有4个参数:

  • 参数1:需要排序的范围或者数组;
  • 参数2:按第几列排序,可省略,默认按第一列排序;
  • 参数3:升序还是降序排序,1是升序,2是降序,可省略,默认按升序排序
  • 参数4:按行或列排序,True是按行,False按列,可省略,默认按列

上例中,参数一排序范围是A-B列,参数二按销量排序(位于第二列,所以输入2),参数三降序排序,所以输入-1。SORT筛选排序

结合FILTER函数可以轻松筛选排序TOP数据。

比如下面筛选销量TOP3小组,并按销量降序排序,直接输入公式:

=SORT(FILTER(A2:B9,B2:B9>LARGE(B2:B9,4)),2,-1)

SORT多字段升降排序

下图中,我们需要根据两个字段排序,首先按A列“品类”升序,其次按C列销量“降序”

这里涉及到多列排序,公式可以这样输入:

=SORT(A2:C10,{1,3},{1,-1})

说完SORT函数,我们再来了解下SORTBY函数。

SORTBY与SORT函数功能基本一致,只不过语法略有出入。

SORTBY函数语法

语法:=SORTBY(数据源,排序列1,升序or降序,排序列2,升序or降序……)

其中排序列可指定多个列,最多可以指定126个;函数最少输入2个参数

SORTBY单列排序

还是按照销量对小组降序排序,SORTBY函数与SORT函数公式略有不同:

=SORTBY(A2:B9,B2:B9,-1)

可以发现的是,两者的差异在于参数二:

SORTBY参数二是单元格区域、SORT参数二是数字

SORTBY多列排序

SORTBY排序依据列可多次输入,最多输入126列,下图中先是根据“品类”升序、再是根据“销量”降序,公式为:

=SORTBY(A2:C10,A2:A10,1,C2:C10,-1)

与SORT函数的写法略有不同,不过实现的功能是一样的。

SORTBY自定义排序

相信大家都遇到过这种情况,在对月份升序排序的时候会出现10-12月排在最上方的情况:

这是由于Excel排序是按位排序,10-12月份第二位为数字“012”,要小于1-9月的第二位“月”字,所以排到了最前方。

这里我们利用SORTBY函数纠正这个BUG。

输入以下公式:

=SORTBY(A2:A13,FIND(A2:A13,"1月2月3月4月5月6月7月8月9月10月11月12月"))

FIND函数查找每个月份在字符串中的位置,并返回一个数字列表,SORTBY参数3省略,默认升序排序,实现月份的正确排序。

关于这个函数公式,你学会了么?动手试试吧!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平