0Pricing
Excel Formulas Academy · 课时

使用 SORTBY 按另一列排序

使用不同数组中的值对一个数组排序

使用 SORTBY 按另一列排序 是 CoddyKit 上的免费 Excel Formulas Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Excel Formulas Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Excel Formulas Academy 课程共包含 4 节课。

SORTBY 的用途

SORT 按数组内部的列对数据排序。但如果您想根据一个独立数组中的值来排列某个列表,而该数组并不属于输出结果,该怎么办?

这正是 SORTBY 的作用。它可以使用完全不同范围的顺序来排序一个范围,让您能够灵活地进行多关键字排序,而无需将排序列包含在结果中。

=SORTBY(A2:A10, B2:B10)

SORTBY 的语法

SORTBY 的结构为:

  • array 要返回的数据,按排序后的顺序排列
  • by_array1 决定顺序的值
  • sort_order1 1 表示升序,-1 表示降序(可选)

您可以继续添加by_array / order对,以便按多个关键字排序。每个 by_array 的高度(或宽度)必须与要排序的数组相同。

=SORTBY(array, by_array1, [order1], [by_array2], [order2], ...)

按隐藏分数排序姓名

假设 A2:A10 存放选手姓名,B2:B10 存放其分数。您想按分数排列姓名,最高分在前,但只希望显示姓名。

SORTBY 只返回按分数数组排序后的姓名。分数本身不会出现在输出结果中。

=SORTBY(A2:A10, B2:B10, -1)

SORTBY 与 SORT 的区别

关键区别是:使用 SORT 时,排序依据的列属于结果的一部分;使用 SORTBY 时,排序关键字位于单独的数组中,不会被返回。

  • 当排序列也应显示在输出结果中时,使用 SORT
  • 当您想让输出整洁,并按照幕后数据排序时,使用 SORTBY
=SORTBY(A2:A10, C2:C10, 1)

按外部列对整个表格排序

要返回的数组可以包含多列。假设 A2:B10 中存放姓名和电子邮件,C2:C10 中存放优先级数字。

SORTBY 会按优先级排列姓名/电子邮件表格,即使优先级从未显示在结果中。

=SORTBY(A2:B10, C2:C10, 1)

按多个关键字排序

添加更多by_array / order对来处理相同值。SORTBY 会按顺序应用它们:第一个关键字优先排序,第二个关键字用于处理并列,以此类推。

这里先按地区升序排序,再在每个地区内按销售额降序排序。

=SORTBY(A2:C20, B2:B20, 1, C2:C20, -1)

按计算得到的数组排序

by_array 不必是已存储的列。您可以按即时计算得到的结果排序。

假设 A2:A10 中存放产品名称,B2:B10 中存放价格,C2:C10 中存放成本。要按利润率排列产品,而不将利润率存储在任何位置,可以在 SORTBY 中计算它。

=SORTBY(A2:A10, B2:B10-C2:C10, -1)

保持数组大小一致

每个 by_array 都必须与要排序数组的长度一致。如果数组有 9 行,每个 by_array 也必须有 9 行。

大小不匹配会产生 #VALUE! 错误。请仔细检查各个范围是否从相同的行开始并在相同的行结束。

=SORTBY(A2:A10, B2:B10, -1)

Google 表格中的 SORTBY

Google 表格支持相同语法的 SORTBY,因此您的公式可以移植。包括多个排序关键字和计算所得的 by_array 在内,其行为都与 Excel 一致。

与 SORT 一样,SORTBY 也会溢出结果,因此请确保下方单元格有足够空间。

=SORTBY(A2:C20, B2:B20, 1, C2:C20, -1)

将 SORTBY 与 FILTER 结合

与 SORT 一样,SORTBY 也能很好地与 FILTER 配合使用。先进行筛选,只保留所需的行,然后由 SORTBY 对剩余内容排序。

请注意:筛选数组时,必须以相同方式筛选 by_array,以保持两者对齐。这里仅当完整表格和筛选后的辅助数组共享相同行时,才按该辅助数组排序;因此,通常更简单的做法是先使用 SORTBY,再筛选其结果。

=FILTER(SORTBY(A2:C20, C2:C20, -1), SORTBY(B2:B20, C2:C20, -1)="East")

实用排行榜

将这些知识结合起来:创建一个实时排行榜,按分数列出选手姓名,并在分数相同时以尝试次数较少者优先。

假设姓名位于 A2:A20,分数位于 B2:B20,尝试次数位于 C2:C20。SORTBY 会先按分数排序(高分在前),再按尝试次数排序(次数少在前)。更新任意值后,顺序都会自动刷新。

=SORTBY(A2:A20, B2:B20, -1, C2:C20, 1)

<p>姓名位于 <code>A2:A10</code>,对应的分数位于 <code>B2:B10</code>。您只想返回姓名,并按分数从高到低排列。哪个公式有效?</p>

姓名位于 A2:A10,对应的分数位于 B2:B10。您只想返回姓名,并按分数从高到低排序。哪个公式可行?

回顾:使用 SORTBY 排序

SORTBY 使用单独数组中的值对一个数组排序,而这些单独数组不会显示在结果中:

  • =SORTBY(array, by_array1, order1, ...)
  • 添加更多 by_array / order 对,以便按多个关键字排序
  • by_array 可以是已存储的列,也可以是实时计算结果
  • 每个 by_array 都必须与数组的长度一致

它非常适合根据幕后数据生成整洁的有序结果,例如排行榜。

=SORTBY(A2:A20, B2:B20, -1, C2:C20, 1)

常见问题解答

「使用 SORTBY 按另一列排序」课时是免费的吗?

是的 — 「使用 SORTBY 按另一列排序」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Excel Formulas Academy 课程的其余内容,请升级到 CoddyKit PRO。 Excel Formulas Academy 课程共包含 4 节课。

「使用 SORTBY 按另一列排序」这节课中我会学到什么?

使用不同数组中的值对一个数组排序 你通过在浏览器中直接运行的动手代码来练习 Excel Formulas Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Excel Formulas Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Excel Formulas Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「使用 SORTBY 按另一列排序」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Excel Formulas Academy 课中编写并运行代码吗?

能。每节 Excel Formulas Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 使用 SORT 对结果排序
  2. 使用 SORTBY 按另一列排序
  3. 使用 SEQUENCE 生成数字
  4. 使用 RANDARRAY 生成随机数据
← 返回 Excel Formulas Academy