公众号平台最新的推送规则对技术类文章不太友善,如果不想错过干货,请务必 “设为星标”哦!!!
点击上方蓝字 --> 点击“...”--> 选择“设为星标”
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 所示。
解决方案 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 函数自动识别,并按横向排序了表格。
转发、点赞、在看也是爱!