Excel – 多条件排序就用 sortby 函数

文摘   科技互联网   2024-10-27 11:01   上海  

公众号平台最新的推送规则对技术类文章不太友善,如果不想错过干货,请务必 “设为星标”哦!!!


点击上方蓝字 --> 点击“...”--> 选择“设为星标


O365 这次出了两个排序函数,除了前段时间给大家讲解过的 sort 以外,还有一个 sortby 函数。


sortby 函数也是用于排序,功能跟 sort 类似,主要区别在于:

  • sort 只能按一个数组或区域排序,而 sortby 可以按多个数组或区域排序。

  • sortby 比 sort 更智能,参数中不需要声明是按行还是按列排序,它会自动识别。


有关 sort 函数的详解,请参阅 Excel – 告别繁琐的菜单操作,用 sort 函数排序


函数说明:


作用:

  • 根据相应区域或数组中的值对区域或数组的内容进行排序。


语法:

  • SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2],…) 


参数:

  • array:必需,要筛选的区域或数组。

  • by_array1:必需,要对其进行排序的区域或数组。

  • [sort_order1]:可选,排序顺序。1(或省略)表示升序,-1 表示降序。

  • [by_array2]:可选,要对其进行排序的第二个区域或数组。

  • [sort_order2]:可选,第二个排序顺序。1(或省略)表示升序,-1 表示降序。


说明:

  • 数组可以是一行或一列,也可以是行和列的组合。

  • SORTBY 函数会返回一个数组,如果该数组是公式的最终结果,则会溢出。这意味着,当按下回车键时,Excel 将动态创建相应大小的数组范围。对于 Excel 表格中的数据,若使用结构化引用,则从数组范围中添加或删除数据时,数组将自动重设大小。

  • Excel 对工作簿之间的动态数据提供有限支持,并且仅当这两个工作簿时都处于打开状态时才支持此方案。如果关闭源工作簿,刷新时,任何链接的动态数组公式都将返回 #REF! 错误 。


案例 1:


下图 1 为某公司员工的业绩完成率及奖金表,请按以下要求排序:

  1. 依次按“业绩完成率”和“实际奖金”为第一、第二优先级,从高到低排序

  2. 保持月份顺序不变,按每个月内的“实际奖金”从高到低排序


效果如下图 2、3 所示。


解决方案 1:


1. 在 G2 单元格中输入以下公式:

=SORTBY(A2:E25,D2:D25,-1,E2:E25,-1)


公式释义:

  • A2:E25:对这个区域排序

  • D2:D25,-1:按 D2:D25 区域降序排序

  • E2:E25,-1:按 E2:E25 区域降序排序


2. 在 G2 单元格中输入以下公式:

=SORTBY(A2:E25,A2:A25,,E2:E25,-1)


公式释义:

  • A2:E25:对这个区域排序

  • A2:A25,,:省略了排序参数,表示按 A2:A25 区域升序排序

  • E2:E25,-1:按 E2:E25 区域降序排序


案例 2:


下图 1 是一个横向的业绩完成情况表,请依次按“完成率”和“业绩”的优先顺序,从高到低排序。


效果如下图 2 所示。


解决方案 2:


在 B13 单元格中输入以下公式:

=SORTBY(B7:I10,B10:I10,-1,B8:I8,-1)


公式释义:

  • B7:I10:对这个区域排序

  • B10:I10,-1:按 B10:I10 区域降序排序

  • B8:I8,-1:按 B8:I8 区域降序排序


sortby 函数自动识别,并按横向排序了表格。


转发、点赞、在看也是爱!

Excel学习世界
你遇到的所有 Excel 坑,我都帮你趟过了。
 最新文章