Excel SORT 和 SORTBY 函数
最后修改于 2025 年 4 月 4 日
SORT
和 SORTBY
函数是 Excel 中组织数据的强大工具。它们允许对范围和数组进行动态排序。本教程通过详细示例提供使用这些函数的全面指南。您将学习基本语法、实际应用和高级技术,以掌握这些 essential 的 Excel 函数。
SORT/SORTBY 函数基础知识
SORT
函数以升序或降序重新排列范围或数组的内容。SORTBY
根据另一个范围或数组中的值对范围进行排序。两个函数都返回动态数组。
函数 | 描述 | 语法 |
---|---|---|
SORT | 对范围或数组进行排序 | =SORT(array,[sort_index],[sort_order],[by_col]) |
SORTBY | 根据另一个范围/数组进行排序 | =SORTBY(array,by_array1,[sort_order1],...) |
此表比较了这两个排序函数。SORT
直接对数组进行排序,而 SORTBY
则根据其他数组进行排序。两者都支持多个排序顺序和方向。
基本 SORT 示例
此示例演示了 SORT 函数与单列数据的最简单用法。
A | B |
---|---|
Apple | |
Orange | |
Banana | |
=SORT(A1:A3) |
该表显示了 A 列中的简单水果列表以及 B4 单元格中的 SORT
公式,该公式按字母顺序升序对列表进行排序。
=SORT(A1:A3)
此公式按字母顺序对单元格 A1 到 A3 中的值进行排序。结果将是 {"Apple";"Banana";"Orange"}。这显示了 SORT 与默认参数的最简单用法。
带多列的 SORT
SORT
可以处理多列范围,并按指定列进行排序。此示例显示了按第二列对表进行排序。
A | B | C |
---|---|---|
John | 35 | |
Mary | 28 | |
Bob | 42 | |
=SORT(A1:B3,2,-1) |
该表演示了按第二列(年龄)降序对两列范围进行排序。sort_index 为 2,sort_order 为 -1 表示降序。
=SORT(A1:B3,2,-1)
此公式按第二列降序对范围 A1:B3 进行排序。结果将是 {"Bob",42;"John",35;"Mary",28}。sort_index 参数确定按哪一列排序。
带单条件的 SORTBY
SORTBY
根据另一个范围中的值对范围进行排序。此示例显示了带有一个排序条件的用法。
A | B | C |
---|---|---|
Red | 3 | |
Blue | 1 | |
Green | 2 | |
=SORTBY(A1:A3,B1:B3) |
该表显示了 A 列中的颜色和 B 列中的数字。SORTBY
公式根据 B 列中的值升序对 A 列进行排序。
=SORTBY(A1:A3,B1:B3)
此公式根据 B1:B3 中的值对范围 A1:A3 进行排序。结果将是 {"Blue";"Green";"Red"}。当您的排序键与您要排序的数据分开时,SORTBY 非常有用。
带多个条件的 SORTBY
SORTBY
可以使用不同的排序顺序,通过多个条件进行排序。此示例演示了双层排序。
A | B | C | D |
---|---|---|---|
Apple | 水果 | 10 | |
胡萝卜 | Vegetable | 15 | |
Banana | 水果 | 8 | |
=SORTBY(A1:C3,B1:B3,1,C1:C3,-1) |
该表显示了一个三列数据集。SORTBY
公式首先按类别(升序)排序,然后在每个类别内按价格(降序)排序。
=SORTBY(A1:C3,B1:B3,1,C1:C3,-1)
此公式首先按 B 列(升序)排序范围 A1:C3,然后按 C 列(降序)排序。结果将首先显示水果(Apple 然后 Banana),然后是蔬菜(Carrot),由于价格原因,Banana 出现在 Apple 之前。
水平数据的 SORT
SORT
可以通过设置 by_col 参数来对水平范围进行排序。此示例显示了对一行数据进行排序。
A | B | C | D |
---|---|---|---|
March | January | February | |
=SORT(B1:D1,,,TRUE) |
该表演示了按字母顺序对月份进行水平排序。by_col 参数设置为 TRUE 以对列而不是行进行排序。
=SORT(B1:D1,,,TRUE)
此公式按字母顺序对水平范围 B1:D1 进行排序。结果将是 {"February","January","March"}。第四个参数(TRUE)启用按列排序,而不是默认的按行排序。
带自定义顺序的 SORTBY
SORTBY
可以使用辅助列实现自定义排序顺序。此示例显示了按优先级级别排序。
A | B | C | D |
---|---|---|---|
Task 1 | 高 | 2 | |
Task 2 | 中等 | 1 | |
Task 3 | Low | 3 | |
=SORTBY(A1:B3,C1:C3) |
该表显示了带有优先级标签和数值的任务。SORTBY
公式使用数值来建立不遵循字母顺序的自定义排序顺序。
=SORTBY(A1:B3,C1:C3)
此公式根据 C1:C3 中的值对范围 A1:B3 进行排序。结果将按 Medium (1)、High (2)、Low (3) 顺序显示任务。此技术对于实现非字母排序序列非常有用。
带动态数组的 SORT
SORT
可以与其他动态数组函数结合使用。此示例显示了对过滤后的结果进行排序。
=SORT(FILTER(A1:B10,B1:B10>100),2,-1)
此公式首先过滤 B 列值大于 100 的行,然后按第二列以降序对结果进行排序。SORT 和 FILTER 的结合创建了强大的数据处理工作流。
带多个排序方向的 SORTBY
SORTBY
允许为每个条件指定不同的排序方向。此示例显示了混合的升序和降序排序。
A | B | C | D |
---|---|---|---|
北方 | 200 | Q1 | |
南方 | 150 | Q2 | |
东区 | 200 | Q1 | |
=SORTBY(A1:C3,B1:B3,-1,C1:C3,1) |
该表演示了首先按销售额(降序)排序,然后在销售额值相等的记录中按季度(升序)排序。这创建了一个具有不同方向的多级排序。
=SORTBY(A1:C3,B1:B3,-1,C1:C3,1)
此公式首先按 B 列(降序)排序范围 A1:C3,然后按 C 列(升序)排序。销售额相等的记录(200)将按季度排序。结果显示 North 出现在 East 之前,因为 Q1 在 Q2 之前。
带错误处理的 SORT
SORT
可以与 IFERROR 结合使用来处理源数据中潜在的错误。此示例显示了一种健壮的排序方法。
=SORT(IFERROR(A1:B10,""),1,1)
此公式在将任何错误转换为空字符串后对范围 A1:B10 进行排序。IFERROR 包装器可防止由于源数据中的错误值导致的排序失败。空字符串将在升序排序的底部进行排序。
SORT
和 SORTBY
函数是现代 Excel 中动态数据组织的关键。从简单的列表到复杂的多条件排序,它们都提供了强大的解决方案。掌握这些函数将显著提高您进行数据分析的能力。请记住,这两个函数都返回会自动溢出结果的动态数组。
作者
列出 所有 Excel 公式。