点击蓝字 关注我吧!
遇到过这个问题吗?Excel表格的数据一增加,排好的顺序就又乱了,又得重新排序。
今天这篇,我们一起来学习动态排序函数:SORTBY,彻底解决这个问题。
后台回复:BY,可以获得练习案例哦!
一、功能语法
SORTBY的功能是:不改变原始数据的顺序,在另一个区域生成全新的、已排序的数组。
它是动态数组函数:
结果会自动“溢出”到相邻的单元格;
当源数据发生变动时,排序后的数组也会实时同步更新,不用反复点排序按钮!
语法
=SORTBY(数组,排序依据数组1,[排序顺序1]),排序依据数组2,[排序顺序2],...)
【参数1】数组:必填
要排序的数据范围
【参数2】排序依据数组1:必填
用什么列作为排序依据
【参数3】排序顺序:可选
1或省略为升序,-1为降序
其他参数:可选
支持多级排序,依次添加就可以啦!
二、使用场景
1.单条件排序
【要求】
按照销售额从高到底排序。
【公式】
=SORTBY(B2:D12,D2:D12,-1)
【参数1】数组:
对B2:D12区域排序
【参数2】排序依据数组1:
把D2:D12的销售额作为排序依据
【参数3】排序顺序:
-1:降序排序

2.多条件排序
【要求】
先按照销售1、2、3部排序,再在部门内按销售额降序排列。
【公式】
=SORTBY(B2:D12,C2:C12,1,D2:D12,-1)

3.自定义排序
【领导的奇葩要求】
先按销售2、3、1部排序,再在部门内按销售额降序排序。
【方法1】
1.建立辅助列,在J1~J3依次输入销售2、3、1部。
2.在F2输入公式:
=SORTBY(B2:D12,MATCH(C2:C12,J1:J3,0),1,D2:D12,-1)

【方法2】
不要辅助列,把排序标准写到MATCH的第2参数里:
=SORTBY(B2:D12,MATCH(C2:C12,{"销售2部","销售3部","销售1部"},0),1,D2:D12,-1)

【解析】
MATCH函数的功能是返回某个值在指定的一行或一列中的相对位置。语法是:
=MATCH(查找值,查找区域,[匹配类型])
查找值:要找的内容
查找区域:必须是单行或单列
匹配类型:0代表精确匹配;1为升序模糊匹配;-1为降序模糊匹配
常规排序只能按拼音或数字大小排,Excel不认识领导要求的这种“自定义顺序”(2部→3部→1部)。
MATCH函数的作用是把部门名称翻译成位置编号:
“销售2部”在大括号序列中是第1个→MATCH返回1
“销售3部”是第2个→返回2
“销售1部”是第3个→返回3
SORTBY拿到的是{1,2,3}这组数字,而不是原来的文字。按数字排序,就实现了“2部→3部→1部”的效果。
三、注意事项
1.版本要求
Excel 2021、Excel 365或最新版WPS可以使用SORTBY。Excel 2019及更早版本无法使用。
2.#SPILL!错误
结果溢出区域有其他内容遮挡,会返回#SPILL!错误。
删掉遮挡内容,就可以正常返回结果。
3.#VALUE!错误
参数1“数组”和所有的“排序依据数组”的行数必须保持一致,否则会返回#VALUE!错误。

第1、2参数行数不一致返回错误↑
以上,就是关于SORTBY函数的内容啦。下一期聊聊SORTBY和SORT函数的区别。
如果对你有帮助,点赞、关注再划走呀!
推荐阅读:
动态排序函数SORT→90%人还在手动排序,Excel高手都用SORT动态排序,自动更新太爽了!
好用到逆天的查找函数→不是我吹,有了XLOOKUP,VLOOKUP可以直接打入冷宫!