Microsoft Lab
全部软件
Excel排序(Sort)约 4 分钟

SORT Function SORT 函数

重点内容


适用版本

需要 Excel 365 或 Excel 2021(旧版本没有 SORT 函数,只能用 Data›Sort传统排序)。


基础用法

示例数据 A2:D15 是一份含姓名、部门、销售额等字段的记录表。

  1. 在 F2 输入 =SORT(A2:D15)
  2. 结果自动向下、向右溢出填满多个单元格(spilling),不需要按 Ctrl + Shift + Enter
📷 画面提示

SORT 函数结果自动溢出,排序后的完整数据表

📌 SORT 默认按第一列(第一个字段)、升序排序。


按不同列排序

在第二个参数指定要排序的列号:

  • =SORT(A2:D15,2) 表示改按第二列排序

降序排列

在第三个参数指定顺序:

  • =SORT(A2:D15,2,-1),1 表示升序,-1 表示降序

多列排序

第二个参数用数组常量 {} 同时指定多个列:

  • =SORT(A2:D15,{1,4}) 表示先按第 1 列排,再按第 4 列排(例如先按姓氏,再按销售额)
  • 混合排序顺序(比如第一列升序、第二列降序)也可以写成数组常量搭配对应的顺序参数:=SORT(A2:D15,{1,4},{1,-1})
📷 画面提示

多列排序结果,先按姓氏排、同姓氏内再按销售额排


搭配 SORTBY 函数

如果想「按某一列排序,但显示另一个范围」,或排序依据不是数据本身相邻的列,可以改用 SORTBY 函数(详见反转列表 / 随机打乱列表两篇笔记的用法)。


SORT 还是 SORTBY,怎么选

函数适合场景备注
SORT排序依据就是数据本身的某一列用列号指定排序依据,写法更简单
SORTBY排序依据是另一个范围(不相邻、或不显示出来)例如按销售额排序但只显示姓名

函数速查

函数语法用途例子
SORT=SORT(array, [sort_index], [sort_order])对范围排序,结果自动溢出=SORT(A2:D15,2,-1)
SORTBY=SORTBY(array, by_array, [order])按对应范围的值排序=SORTBY(A2:D15,C2:C15,-1)

学完你会

常见错误

  • 忘记 SORT 是动态数组函数,在结果溢出范围内手动插入内容,会导致 #SPILL! 错误
  • 多列排序时数组常量里的列号和顺序参数数量对不上(比如列号写了两个、顺序只写了一个),公式会报错
  • 以为 SORT 会改动原始数据 A2:D15,实际上原数据完全没变,SORT 只是在公式所在的位置生成一份排序后的副本

Sources

Blog / Website:

  1. SORT function
只记在你的浏览器里,换设备不会同步。