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 为某公司员工的业绩完成率及奖金表,请按以下要求排序:
- 依次按“业绩完成率”和“实际奖金”为第一、第二优先级,从高到低排序
- 保持月份顺序不变,按每个月内的“实际奖金”从高到低排序
效果如下图 2、3 所示。
![3b448880ec67ff134077aa939c979854.png](https://i-blog.csdnimg.cn/blog_migrate/cd611076b0b0ae13d819208f288f0f73.jpeg)
![de2e1a5e7c2d5cf8a82bceae1d7e1e35.png](https://i-blog.csdnimg.cn/blog_migrate/51dfc148be3560af1f16f3243e85f5a2.jpeg)
![12bcad1ba3414bfe4b8ef65bb4cbf2c1.png](https://i-blog.csdnimg.cn/blog_migrate/d5f0536059f0f45d645a64bdbfbed29c.jpeg)
解决方案 1:
1. 在 G2 单元格中输入以下公式:
=SORTBY(A2:E25,D2:D25,-1,E2:E25,-1)
公式释义:
- A2:E25:对这个区域排序
- D2:D25,-1:按 D2:D25 区域降序排序
- E2:E25,-1:按 E2:E25 区域降序排序
![766c3eeef29875240ea7c37da67bf174.png](https://i-blog.csdnimg.cn/blog_migrate/02693cbd54f380a4a94ef1399d2d3b85.jpeg)
![0273b4bdc9ae3868b5bbdba0feeeba91.png](https://i-blog.csdnimg.cn/blog_migrate/0a810a0664fbaa8aef8a6fcc2c92c2b7.jpeg)
2. 在 G2 单元格中输入以下公式:
=SORTBY(A2:E25,A2:A25,,E2:E25,-1)
公式释义:
- A2:E25:对这个区域排序
- A2:A25,,:省略了排序参数,表示按 A2:A25 区域升序排序
- E2:E25,-1:按 E2:E25 区域降序排序
![abe46b2971c4dd356dd5ab97dab2fd1f.png](https://i-blog.csdnimg.cn/blog_migrate/f5dc15a08dc30336ac8def6278715700.jpeg)
![5077d9c7d20ecdb1ec7f1d3b5a60895c.png](https://i-blog.csdnimg.cn/blog_migrate/6b6c9db7abcb9de954dece66761c8387.jpeg)
案例 2:
下图 1 是一个横向的业绩完成情况表,请依次按“完成率”和“业绩”的优先顺序,从高到低排序。
效果如下图 2 所示。
![db79f08dcf564b920306b7d6b7e24377.png](https://i-blog.csdnimg.cn/blog_migrate/d916f1c4803df7c620d9d941c89850af.jpeg)
![205adb58e1b40b1b5bc004a66edd2da2.png](https://i-blog.csdnimg.cn/blog_migrate/f0df8fcc7defdfcf4ad804ab81cd0bb8.jpeg)
解决方案 2:
在 B13 单元格中输入以下公式:
=SORTBY(B7:I10,B10:I10,-1,B8:I8,-1)
公式释义:
- B7:I10:对这个区域排序
- B10:I10,-1:按 B10:I10 区域降序排序
- B8:I8,-1:按 B8:I8 区域降序排序
![c9d69fce0463f98062d4f60a583a0c86.png](https://i-blog.csdnimg.cn/blog_migrate/a631c34821a4340ebf71a474562922cf.jpeg)
sortby 函数自动识别,并按横向排序了表格。
![31fbeb83c17246e55ad3cc5c43c294e5.png](https://i-blog.csdnimg.cn/blog_migrate/48a9c5a03c078505c67c9f87b208c166.jpeg)
很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。
现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。