搜索
首页专题excelExcel排序功能 - 使用公式自动排序数据

教程显示了如何使用排序函数动态对数据数组进行分类。您将学习一个公式,在Excel中按字母顺序排序,以升序或降序排列数字,按多列排序等等。

排序功能已经存在了很长时间。但是,随着Excel 365中动态阵列的引入,似乎有一种非常简单的方法可以与公式进行排序。该方法的优点在于,当源数据更改时,结果会自动更新。

Excel排序功能

Excel中的排序功能分类数组或范围的内容,按列或行,上升或下降顺序。

排序属于动态数组函数组。结果是一个动态阵列,该阵列会自动垂直或水平溢出到相邻的单元格上,具体取决于源阵列的形状。

排序函数的语法如下:

sort(array,[sort_index],[sort_order],[by_col])

在哪里:

阵列(必需) - 是一个值的数组或要排序的一个单元格。这些可以是任何值,包括文本,数字,日期,时间和等。

sort_index (可选) - 一个整数,指示要排序哪个列或行。如果省略,则使用默认索引1。

sort_order (可选) - 定义排序顺序:

  • 1或省略(默认) - 上升顺序,即从最小到最大
  • -1-降序,即从最大到最小的

BY_COL(可选) - 一个指示排序方向的逻辑值:

  • false或省略(默认) - 按行排序。您将大部分时间都使用此选项。
  • true-按列排序。如果您的数据是在此示例中的列中水平组织的,则使用此选项。

Excel排序功能 - 提示和注释

排序是一种新的动态数组函数,因此它具有两个特殊性,您应该知道:

  • 当前,该排序功能仅在Microsoft 365和Excel 2021中可用。Excel2019,Excel 2016不支持动态阵列公式,因此这些版本中的排序功能不可用。
  • 如果按排序公式返回的数组是最终结果(即未传递到另一个函数),则Excel会动态创建适当的范围,并用排序的值将其填充。因此,请确保您始终将足够的空单元格向下或/以及进入公式的单元格的右侧,否则会发生#spill错误。
  • 随着源数据的变化,结果动态更新。但是,提供给公式的数组不会自动扩展到包含引用数组之外添加的新条目。要包含此类项目,您需要在公式中更新数组参考,或如本示例所示,将源范围转换为表,或创建一个动态命名范围。

基本的Excel排序公式

此示例显示了一个基本公式,用于在Excel中以升和降序排序数据。

假设您的数据是按字母顺序排列的,如下面的屏幕截图所示。您正在寻找在B列中对数字进行排序,而不会破坏或混合数据。

公式按顺序排序

要在B列中从最小到最大的值分类值,以下是要使用的公式:

=SORT(A2:B8, 2, 1)

在哪里:

  • A2:B8是源数组
  • 2是要排序的列号
  • 1是上升顺序

由于我们的数据是行的,因此可以省略最后一个参数以默认为false-按行排序。

只需在任何空单元格中输入公式(在我们的情况下D2),然后按Enter ,结果将自动溢出至D2:E8。

Excel排序功能 - 使用公式自动排序数据

以降序排序的公式

为了对数据进行排序,即从最大到最小的,将sort_order参数设置为-1这样:

=SORT(A2:B8, 2, -1)

在目标范围的左上方单元格中输入公式,您将获得此结果:

Excel排序功能 - 使用公式自动排序数据

以类似的方式,您可以按字母顺序从A到Z或从Z到A进行文本值。

如何使用公式在Excel中对数据进行排序

以下示例显示了Excel和几个非平凡功能中排序功能的一些典型用途。

符合列排序

当您在Excel中排序数据时,在大多数情况下,您会更改行顺序。但是,当您的数据与包含标签和包含记录的列的行水平组织时,您可能需要从左到右进行排序,而不是从上到下进行排序。

要按Excel中的列进行排序,请将BY_COL参数设置为true。在这种情况下, sort_index将表示一行,而不是列。

例如,按QTY对以下数据进行排序。从最高到最低,使用此公式:

=SORT(B1:H2, 2, 1, TRUE)

在哪里:

  • B1:H2是要排序的源数据
  • 2是排序索引,因为我们在第二行中对数字进行排序
  • -1表示降序排序订单
  • 真正的手段来对列进行排序,而不是行

Excel排序功能 - 使用公式自动排序数据

按不同顺序排序多个列(多级排序)

使用复杂的数据模型时,您通常可能需要多层次排序。可以用公式完成吗?是的,很容易!您要做的是为sort_indexsort_order参数提供数组常数。

例如,首先按区域(A列)从A到Z进行以下数据,然后按QTY对。 (C列)从最小到最大,设置以下参数:

  • 数组是A2:C13中的数据。
  • sort_index是数组常数{1,3},因为我们首先按区域(1 st列)排序,然后按QTY进行排序。 (3列)。
  • sort_order是数组常数{1,-1},因为第一列应按升序排序,而3列则以降序排序。
  • 省略了BY_COL ,因为我们对行进行排序,这是默认的。

将论点汇总在一起,我们得到了这个公式:

=SORT(A2:C13, {1,3}, {1,-1})

它可以很好地工作!第一列中的文本值按字母顺序排序,第三列中的数字从最大到最小:

Excel排序功能 - 使用公式自动排序数据

在Excel中排序和过滤

如果您想用一些标准过滤数据并将输出放置在顺序上,请将排序和过滤功能一起使用:

sort(filter(array, criteria_range = criteria ),[sort_index],[sort_order],[by_col])

过滤器函数根据您定义的标准获得一个值数组,并将该数组传递到排序的第一个参数。

关于此公式的最好的事情是,它还将结果输出为动态溢出范围,而无需按CTRL Shift Enter或猜测将其复制到多少个单元格。像往常一样,您可以在最高单元格中键入一个公式,然后按Enter键。

例如,我们将从a2:b9中的源数据中提取等于或大于30(> = 30)的项目,并按上升顺序排列结果。

为此,我们首先在单元E2中设置条件,如下图所示。然后,以这种方式构建我们的Excel排序公式:

=SORT(FILTER(A2:B9, B2:B9>=E2), 2)

除了由过滤器函数生成的数组外,我们仅指定sort_index参数(第2列)。其余两个参数被省略,因为默认值完全按照我们的需要工作(排序逐行)。

Excel排序功能 - 使用公式自动排序数据

获得最大或最小的值,然后对结果进行排序

在分析大量信息时,通常需要提取一定数量的最高值。也许不仅提取,还可以按照所需的顺序排列它们。理想情况下,选择在结果中包含哪些列。听起来很棘手?没有新的动态数组功能!

这是一个通用公式:

索引(排序(...),序列( n ),{ column1_to_returncolumn2_to_return ,…})

其中n是您要返回的值的数量。

从下面的数据集中,假设您想根据C列中的数字获得前3个列表。

要完成,您首先按第三列按降序排序数组A2:C13:

SORT(A2:C13, 3, -1)

然后,将上述公式嵌套在索引函数的第一个(数组)参数中,以使数组从最高到最小排序。

对于第二个( row_num )参数,该参数指示要返回多少行,使用序列函数生成所需的顺序数字。由于我们需要3个顶值,因此我们使用序列(3),这与直接在公式中直接提供垂直阵列常数{1; 2; 3}相同。

对于第三个( col_num )参数,该参数定义了要返回多少列的参数,请以水平数组常数的形式提供列号。我们想返回列B和C,因此我们使用数组{2,3}。

最终,我们得到以下公式:

=INDEX(SORT(A2:C13, 3, -1), SEQUENCE(3), {2,3})

它准确地产生了我们想要的结果:

Excel排序功能 - 使用公式自动排序数据

要返回3个底部值,只需将原始数据从最小数据排序。为此,将sort_order参数从-1更改为1:

=INDEX(SORT(A2:C13, 3, 1), SEQUENCE(3), {2,3})

Excel排序功能 - 使用公式自动排序数据

在特定位置返回排序值

从另一个角度看,如果您只想返回特定的位置怎么办?说,只有第一个,仅第二个或仅从排序列表中的第三记录?要完成,请使用上面讨论的索引排序公式的简化版本:

索引(排序(...), n ,{ column1_to_returncolumn2_to_return ,…})

n是感兴趣的位置。

例如,要从顶部获得特定位置(即从数据排序的降序中),请使用此公式:

=INDEX(SORT(A2:C13, 3, -1), F1, {2,3})

要从底部获得特定的位置(即从数据排序的升序中),请使用以下位置:

=INDEX(SORT(A2:C13, 3, 1), I1, {2,3})

如果A2:C13是源数据,F1是顶部的位置,i1是底部的位置,{2,3}是要返回的列。

Excel排序功能 - 使用公式自动排序数据

使用Excel表获取排序数组以自动展开

如您所知,当您对原始数据进行任何更改时,排序的阵列会自动更新。这是所有动态数组函数的标准行为,包括排序。但是,当您在引用数组之外添加新条目时,它们不会自动包含在公式中。如果您希望您的公式对此类更改做出响应,请将源范围转换为功能齐全的Excel表,并在公式中使用结构化引用。

要查看其在实践中的工作原理,请考虑以下示例。

假设您使用以下Excel排序公式按字母顺序排列A2:B8的值:

=SORT(A2:B8, 1, 1)

然后,您在第9行中输入了一个新的条目,并感到失望地看到新添加的条目不在溢出范围之外:

Excel排序功能 - 使用公式自动排序数据

现在,将源范围转换为表。为此,只需选择您的范围,包括列标题(A1:B8),然后按Ctrl t 。构建公式时,使用鼠标选择源范围,并且表名将自动插入公式中(这称为结构化参考):

=SORT(Table1, 1, 1)

当您在最后一行下方键入新条目时,表将自动扩展,新数据将包含在Sort公式的溢出范围中:

Excel排序功能 - 使用公式自动排序数据

Excel排序功能不起作用

如果您的排序公式会导致错误,则很可能是由于以下原因。

#NAME错误:较旧的Excel版本

排序是一个新功能,仅在Excel 365和Excel 2021中起作用。在不支持此功能的较旧版本中,#name?发生错误。

#spill错误:某些东西阻止了溢出范围

如果溢出范围内的一个或多个单元格并非完全空白或合并,则为#spill!显示错误。要修复它,只需删除阻塞即可。有关更多信息,请参阅Excel #spill!错误 - 它的含义以及如何修复。

#Value错误:无效的参数

每当您遇到#Value时!错误,检查sort_indexsort_order参数。 sort_index不应超过列数为数组sort_order应为1(上升)或-1(下降)。

#ref错误:源工作簿已关闭

由于动态数组对工作簿之间的参考的支持有限,因此Sort功能需要两个文件打开。如果源工作簿已关闭,则公式将抛出#ref!错误。要修复它,只需打开引用文件即可。

这就是如何使用公式在Excel中对数据进行排序的方法。我感谢您阅读,并希望下周在我们的博客上见到您!

练习工作簿下载

用公式(.xlsx文件)在Excel中排序

以上是Excel排序功能 - 使用公式自动排序数据的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何在Excel中创建时间轴以滤波枢轴表和图表如何在Excel中创建时间轴以滤波枢轴表和图表Mar 22, 2025 am 11:20 AM

本文将指导您完成为Excel Pivot表和图表创建时间表的过程,并演示如何使用它以动态和引人入胜的方式与数据进行交互。 您的数据在Pivo中组织了

excel 能否导入 xml 文件excel 能否导入 xml 文件Mar 07, 2025 pm 02:43 PM

Excel可以使用其内置的“来自XML数据导入”功能导入XML数据。 进口成功在很大程度上取决于XML结构。结构良好的文件很容易导入,而复杂的文件可能需要手动映射。 最佳实践包括XML

如何在Excel中下拉如何在Excel中下拉Mar 12, 2025 am 11:53 AM

本文说明了如何使用数据验证(包括单个和因列表)在Excel中创建下拉列表。 它详细介绍了该过程,为常见方案提供解决方案,并讨论诸如数据输入限制和PE之类的限制

如何在Excel中概括一列如何在Excel中概括一列Mar 14, 2025 pm 02:42 PM

本文讨论了使用SUM函数,Autosum功能以及如何总和特定单元格中的Excel中总和列的方法。

如何在Excel中制作饼图如何在Excel中制作饼图Mar 14, 2025 pm 03:32 PM

本文详细介绍了在Excel中创建和自定义饼图的步骤,专注于数据准备,图表插入和个性化选项,以增强视觉分析。

如何在Excel中制作桌子如何在Excel中制作桌子Mar 14, 2025 pm 02:53 PM

文章讨论了Excel中的创建,格式化和自定义表,并使用诸如总和,平均和透视物等功能进行数据分析。

如何计算excel中的平均值如何计算excel中的平均值Mar 14, 2025 pm 03:33 PM

文章讨论使用平均功能在Excel中计算平均值。主要问题是如何有效地将此功能用于不同的数据集。(158个字符)

如何在Excel中添加下拉如何在Excel中添加下拉Mar 14, 2025 pm 02:51 PM

文章讨论了使用数据验证在Excel中创建,编辑和删除下拉列表。主要问题:如何有效管理下拉列表。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具