借助所有内置选项,在Excel 中对数据进行排序变得非常容易。
您可以根据单元格中的值或单元格和字体颜色轻松地按字母顺序对数据进行排序。
您还可以进行多级列排序(即按A 列排序,然后按B 列排序)以及行排序(从左到右)。
如果这还不够,Excel 还允许您创建自己的自定义列表并根据它进行排序(这太酷了)。因此,您可以根据衬衫尺寸(XL、L、M、S)或响应(非常同意、同意、不同意)或强度(高、中、低)对数据进行排序
底线——在使用Excel 时,您可以使用的排序选项太多了。
在这个庞大的深入教程中,我将向您展示所有这些排序选项以及一些有用的很酷的示例。
由于这是一个包含许多主题的大型教程,因此我在下面提供了一个目录。您可以单击任何主题,它会立即将您带到那里。
内容
访问Excel 中的排序选项
由于在处理数据时排序是一种常见的事情,因此Excel 为您提供了多种访问排序选项的方法。
对功能区中的按钮进行排序
访问排序选项的最快方法是使用功能区中的排序按钮。
当您单击功能区中的“数据”选项卡时,您将看到“排序和筛选”选项。该组左侧的三个按钮用于对数据进行排序。
这两个小按钮可让您在单击它们后立即对数据进行排序。
例如,如果您有一个名称数据集,您只需选择整个数据集并单击两个按钮中的任何一个即可对数据进行排序。A 到Z 按钮将数据按字母顺序从低到高排序,Z 到A 按钮将数据按字母顺序从高到低排序。
此按钮也适用于数字、日期或时间。
就个人而言,我从不使用这些按钮,因为它们的功能有限,而且使用这些按钮时出错的可能性更大。但如果您需要快速排序(数据集中没有空白单元格),这些可能是一种快速的方法。
排序对话框
在功能区的数据选项卡中,排序组中有另一个排序按钮图标。
当您单击此排序按钮图标时,它会打开排序对话框(如下所示)。
排序对话框是Excel 中最完整的排序解决方案。可以通过此对话框访问所有与排序相关的选项。
使用排序选项的所有其他方法都是有限的,并且不提供完整的功能。
这就是当我必须在Excel 中排序时我总是更喜欢使用对话框的原因。
我偏爱的一个主要原因是使用对话框时出错的可能性很小。一切都井井有条并有标记(与功能区中的按钮不同,您可能会混淆使用哪个按钮)。
在本教程中,您会发现我主要使用对话框对数据进行排序。这也是因为我在某些章节中涉及的一些事情(例如多级排序或从左到右排序)只能使用对话框来完成。
键盘快捷键– 如果您需要经常在Excel 中对数据进行排序,我建议您学习打开排序对话框的键盘快捷键。这是ALT + A + S + S
过滤器菜单中的排序选项
如果您已将过滤器应用于数据集,您还可以找到排序选项以及过滤器选项。可以通过选择数据集中的任何单元格,单击“数据”选项卡并单击“过滤器”图标来应用过滤器。
假设您有一个如下所示的数据集并应用了过滤器。
当您单击任何列的过滤器图标(它是列标题单元格右侧的向下指向的小三角形图标)时,您也会在那里看到一些排序选项。
请注意,这些排序选项会根据列中的数据而变化。因此,如果您有文本,它将显示从A 到Z 或Z 到A 排序的选项,但如果您有数字,它将显示从最大到最小或从最小到最大排序的选项。
右键单击选项
除了使用对话框之外,使用右键单击是我有时使用的另一种方法(它也非常快,只需单击两次)。
当您有要排序的数据集时,右键单击任何单元格,它将显示排序选项。
请注意,您会看到一些在功能区或过滤器选项中看不到的选项。虽然有通常的按值排序和自定义排序选项(打开排序对话框),但您还可以在顶部看到诸如将选定的单元格颜色/字体颜色/格式图标放在上面的选项。
我发现这个选项非常有用,因为它允许我快速将所有彩色单元格(或具有不同字体颜色的单元格)放在顶部。我经常有每月检查的费用数据,并手动突出显示一些单元格。然后我可以使用此选项快速将所有这些单元格放在顶部。
现在我已经介绍了在Excel 中访问排序选项的所有方法,让我们看看如何使用这些方法在不同的场景中对数据进行排序。
Excel 中的数据排序(文本、数字、日期)
警告:在大多数情况下,即使您在数据集中选择单个单元格,排序也会起作用。但在某些情况下,您可能会遇到问题(当您的数据集中有空白单元格/行/列时)。对数据进行排序时,最好选择整个数据集然后对其进行排序——以避免出现任何问题。
根据您拥有的数据类型,您可以使用Excel 中的排序选项。
按文本排序
假设您有一个如下所示的数据集,并且您希望根据学生姓名按字母顺序对所有这些记录进行排序。
以下是按字母顺序对该文本数据进行排序的步骤:
- 选择整个数据集
- 单击数据选项卡
- 单击排序图标。这将打开排序对话框。
- 在排序对话框中,确保我的数据有标题被选中。如果您的数据没有标题,您可以取消选中此项。
- 在“排序依据”下拉菜单中,选择“名称”
- 在“排序依据”下拉菜单中,确保选择“单元格值”
- 在订单下拉菜单中,选择AZ
- 单击确定。
上述步骤将对整个数据集进行排序并给出如下所示的结果。
为什么不直接使用功能区中的按钮?
与仅单击功能区中的排序图标相比,上述在Excel 中对数据进行排序的方法可能看起来需要很多步骤。
这是真的。
上面的方法比较长,但是没有出错的可能。
当您使用功能区中的排序按钮时,可能会出现一些问题(当您拥有大型数据集时,这可能很难发现。
当我在本教程后面讨论使用按钮的缺点时,让我快速向您展示可能出错的地方。
在下面的示例中,由于Excel 无法识别存在标题行,因此它对整个数据集进行排序,包括标题。
使用排序对话框可以避免此问题,因为它明确为您提供了指定数据是否具有标题的选项。
由于使用“排序”对话框可以消除出错的可能性,因此我建议您使用它而不是Excel 中的所有其他排序方法
按数字排序
现在,我假设您已经掌握了文本排序的工作原理(在本节上方进行了介绍)。
其他类型的排序(例如基于数字或日期或颜色)将使用几乎相同的步骤,但有细微的变化。
假设您有一个如下所示的数据集,并且您希望根据每个学生的得分对该数据进行排序。
以下是根据数字对该数据进行排序的步骤:
- 选择整个数据集
- 单击数据选项卡
- 单击排序图标。这将打开排序对话框。
- 在排序对话框中,确保我的数据有标题被选中。如果您的数据没有标题,您可以取消选中此项。
- 在“排序依据”下拉菜单中,选择“名称”
- 在“排序依据”下拉菜单中,确保选择“单元格值”
- 在订单下拉菜单中,选择“从大到小”
- 单击确定。
上述步骤将对整个数据集进行排序并给出如下所示的结果。
按日期/时间排序
虽然日期和时间可能看起来不同,但它们只不过是数字。
例如,在Excel 中,数字44196 将是2020 年12 月31 日的日期值。您可以将此数字格式化为日期,但在Excel 的后端,它仍然是一个数字。
这也允许您将日期视为数字。因此,您可以将10 添加到带有日期的单元格中,它会在10 天后为您提供日期的数字。
Excel 中的时间也是如此。
例如,数字44196.125 表示2020 年12 月31 日凌晨3 点。虽然数字的整数部分表示一整天,但小数部分表示时间。
由于日期和时间都是数字,因此您可以对这些数字进行排序。
假设您有一个如下所示的数据集,并且您希望根据项目提交日期对该数据进行排序。
以下是根据日期对这些数据进行排序的步骤:
- 选择整个数据集
- 单击数据选项卡
- 单击排序图标。这将打开排序对话框。
- 在排序对话框中,确保我的数据有标题被选中。如果您的数据没有标题,您可以取消选中此项。
- 在“排序依据”下拉菜单中,选择“提交日期”
- 在“排序依据”下拉菜单中,确保选择“单元格值”
- 在订单下拉菜单中,选择“从旧到新”
- 单击确定。
上述步骤将对整个数据集进行排序并给出如下所示的结果。
请注意,虽然日期和时间是数字,但Excel 仍然认识到它们在显示方式上是不同的。因此,当您按日期排序时,它会显示“从旧到新”和“从新到旧”排序标准,但是当您使用数字时,它会显示“从大到小”或“从小到大”。这样的小东西使Excel 成为了一个很棒的电子表格工具(PS:Google 表格没有显示太多细节,只是按AZ 或ZA 进行的平淡排序)
按单元格颜色/字体颜色排序
这个选项太棒了,我一直在使用它(也许有点太多了)。
我经常有我手动分析的数据集,并在我做的时候突出显示单元格。例如,我浏览了这个博客上的文章列表(我有一个Excel 表格),我强调了我需要改进的那些。
完成后,我可以根据单元格颜色快速对这些数据进行排序。这有助于我将所有这些突出显示的单元格/行放在顶部。
为了增加精彩,您可以根据多种颜色进行排序。因此,如果我用红色突出显示需要立即注意的文章名称的单元格和一些可以稍后用黄色处理的单元格,我可以对数据进行排序以首先显示所有红色行,然后是黄色行。
如果你有兴趣了解更多,我最近写了这篇关于基于多种颜色进行排序的文章。在本节中,我将快速向您展示如何仅基于一种颜色进行排序
假设您有一个如下所示的数据集,并且您想按颜色排序并获取顶部的所有红色单元格。
以下是按颜色排序的步骤:
- 选择整个数据集
- 单击数据选项卡
- 单击排序图标。这将打开排序对话框。
- 在排序对话框中,确保我的数据有标题被选中。如果您的数据没有标题,您可以取消选中此项。
- 在“排序依据”下拉菜单中,选择“提交日期”(或您拥有彩色单元格的任何列)。由于在此示例中,我们在所有列中都有彩色单元格,您可以选择任何一个。
- 在“排序依据”下拉菜单中,选择“单元格颜色”。
- 在“订单”下拉菜单中,选择您想要排序的颜色。如果数据集中有多个单元格颜色,它将在此处显示所有这些颜色
- 在最后一个下拉菜单中,选择“在顶部”。您可以在此处指定是否希望彩色单元格位于数据集的顶部或底部。
- 单击确定。
上述步骤将按颜色对数据集进行排序,您将获得如下所示的结果。
正如我们根据单元格颜色对这些数据进行排序一样,您也可以根据字体颜色和条件格式图标进行排序。
多级数据排序
实际上,数据集很少像我在本教程中使用的那样简单。
您的可能会扩展到数千行和数百列。
当你有这么大的数据集时,还需要更多的数据切片和骰子。当您拥有大型数据集时,多级数据排序是您可能需要的事情之一。
多级数据排序意味着您可以根据一列中的值对数据集进行排序,然后根据另一列中的值再次对其进行排序。
例如,假设您有如下所示的数据集,并且您希望根据两个标准对该数据进行排序:
- 区域
- 销售
基于上述两个标准的排序输出将为您提供如下所示的数据集。
在上面的例子中,我们首先按地区对数据进行排序,然后在每个地区内,数据进一步按销售额排序。
这可以让我们很快看到哪些销售代表在每个地区做得很好,哪些销售代表做得很差。
以下是基于多列对数据进行排序的步骤:
- 选择要排序的整个数据集。
- 单击数据选项卡。
- 单击排序图标(如下所示)。这将打开排序对话框。
- 在排序对话框中,确保我的数据有标题被选中。如果您的数据没有标题,您可以取消选中此项。
- 在“排序”对话框中,进行以下选择
- 排序依据(列):区域(这是第一级排序)
- 排序依据:单元格值
- 顺序:A 到 Z
- 单击添加级别(这将添加另一个级别的排序选项)。
- 在第二级排序中,进行以下选择:
- 然后按(列):销售
- 排序依据:值
- 顺序:从大到小
- 点击确定
专业提示:排序对话框具有“复制级别”功能。这会快速复制选定的排序级别,然后您可以轻松地对其进行修改。了解功能很好,如果您必须根据多列进行排序,最终可能会节省您的时间。
根据自定义列表排序
虽然Excel 已经有一些常见的排序标准(例如按字母顺序用文本排序、从最小到最大或从最大到最小用数字排序、从最旧到最新或从最新到最旧的日期排序),但这可能还不够。
举个例子,假设我有以下数据集:
现在,如果我根据区域的字母顺序对其进行排序,我有两个选项– A 到Z 或Z 到A。下面是我使用区域列按字母顺序从A 到Z 对这些数据进行排序时得到的结果。
但是,如果我希望这种排序顺序是东、西、北、南呢?
当然,您可以在排序后重新排列数据,但这不是执行此操作的有效方法。
正确的方法是使用自定义列表。
自定义列表是Excel 允许您创建然后使用的列表,就像内置列表(例如月份名称或工作日名称)一样。创建自定义列表后,您可以在数据排序或填充句柄等功能中使用它。
自定义列表可能有用的一些示例包括:
- 根据地区/城市名称对数据进行排序
- 根据T 恤尺寸分类– 小号、中号、大号、特大号
- 根据调查回复排序– 非常同意、同意、中立、不同意
- 基于概率排序——高、中、低
尝试根据自定义条件进行排序的第一步是创建自定义列表。
在Excel 中创建自定义列表的步骤:
- 单击文件选项卡
- 点击选项
- 在Excel 选项对话框中,从左侧窗格的列表中选择“高级”。
- 在选定的高级中,向下滚动并选择“编辑自定义列表”。
- 在“自定义列表”对话框中,在标题为“列表条目”的框中键入您的条件。键入以逗号分隔的条件(东、西、北、南)[如果您列出了条件,您也可以导入您的条件]。
- 点击添加
- 点击确定
完成上述步骤后,Excel 将创建并存储可用于对数据进行排序的自定义列表。
请注意,自定义列表中项目的顺序决定了列表的排序方式。
当您在一个Excel 工作簿中创建自定义列表时,系统中的所有工作簿都可以使用该列表。因此,您只需创建一次,就可以在所有工作簿中重复使用它。
使用自定义列表进行排序的步骤
假设您有如下所示的数据集,并且您希望根据区域对其进行排序(排序顺序为东、西、北和南)
由于我们已经创建了一个自定义列表,我们可以使用它来对我们的数据进行排序。
以下是使用自定义列表对数据集进行排序的步骤:
- 选择整个数据集
- 单击数据选项卡
- 单击排序图标。这将打开排序对话框。
- 在排序对话框中,确保我的数据有标题被选中。如果您的数据没有标题,您可以取消选中此项。
- 在“排序依据”下拉菜单中,选择“区域”(或您拥有彩色单元格的任何列)
- 在“排序依据”下拉菜单中,选择“单元格值”。
- 在订单下拉菜单中,选择“自定义列表”。一旦单击它,它将打开“自定义列表”对话框。
- 在“自定义列表”对话框中,从左侧窗格中选择您已经创建的自定义列表。
- 单击确定。执行此操作后,您将在排序顺序下拉字段中看到自定义排序条件
- 单击确定。
上述步骤将根据自定义排序标准对您的数据集进行排序。
注意:您不必事先创建自定义列表来根据它对数据进行排序。您也可以在“排序”对话框中创建它。当您单击自定义列表(在上面的步骤7 中)时,它会打开自定义列表对话框。您也可以在那里创建自定义列表。
自定义列表不区分大小写。如果您想进行区分大小写的排序,请参阅此示例。
从左到右排序
虽然在大多数情况下,您可能会根据列值进行排序,但有时,您可能还需要根据行值进行排序。
例如,在下面的数据集中,我想根据Region 行中的值对其进行排序。
尽管这种类型的数据结构不像列数据那样常见,但我仍然看到很多人使用这种结构。
Excel 具有内置功能,可让您从左到右排序。
以下是从左到右对该数据进行排序的步骤:
- 选择整个数据集(标题除外)
- 单击数据选项卡
- 单击排序图标。这将打开排序对话框。
- 在排序对话框中,单击选项。
- 在“排序选项”对话框中,选择“从左到右排序”
- 单击确定。
- 在“排序依据”下拉列表中,选择第1 行。通过这样做,我们指定需要根据第1 行中的值进行排序
- 在“排序依据”下拉菜单中,选择“单元格值”。
- 在Order 下拉菜单中,选择AZ(如果需要,您也可以使用自定义排序列表)
- 单击确定。
上述步骤将根据第1 行的值从左到右对数据进行排序。
从左到右排序时,Excel 无法识别(甚至允许您指定)标题。因此,您需要确保在对数据进行排序时未选择标题单元格。如果您也选择标题单元格,这些单元格将根据其中的值进行排序。
注意:另一种从右到左排序数据的方法是转置数据并以柱状形式获取。一旦你有了它,你就可以使用到目前为止介绍的任何排序方法。排序完成后,您可以复制结果数据并将其粘贴为转置数据。
Excel中区分大小写的排序
到目前为止,在上面的所有示例中,排序都是与大小写无关的。
但是如果你想让排序区分大小写怎么办。
值得庆幸的是,Excel 允许您指定是否希望排序区分大小写。
注意:虽然大多数情况下您不需要担心区分大小写的排序,但当您从Salesforce 等数据库获取数据或手动整理数据并让不同的人输入相同的文本时,这可能会有所帮助不同的情况。区分大小写可以帮助您将同一个人/数据库的所有记录保存在一起。
假设您有一个如下所示的数据集,并且您希望根据区域列对该数据进行排序:
以下是按字母顺序对数据进行排序以及区分大小写的步骤:
- 选择整个数据集
- 单击数据选项卡
- 单击排序图标。这将打开排序对话框。
- 在排序对话框中,确保我的数据有标题被选中。如果您的数据没有标题,您可以取消选中此项。
- 单击选项按钮
- 在“排序选项”对话框中,选中“区分大小写”选项
- 单击确定。
- 在“排序依据”下拉菜单中,选择“区域”
- 在“排序依据”下拉菜单中,选择“单元格值”。
- 在订单下拉菜单中,选择A 到 Z
- 单击确定。
上述步骤不仅会根据区域按字母顺序对数据进行排序,而且还会区分大小写。
您将获得如下所示的结果数据:
从A 到Z 排序时,小写文本位于大写文本上方。
获取原始排序顺序
通常在Excel 中对数据进行排序时,您可能希望返回到较早或原始的排序顺序并重新开始,
虽然您可以使用Excel 中的撤消功能(使用Control Z)一次返回一个步骤,但如果您在对数据进行排序后已经完成了多项操作,则可能会令人困惑。
此外,撤消仅在您打开工作簿之前有效,但是当您保存并关闭它并稍后打开它时,您将无法返回到原始排序顺序。
这里有两种简单的方法可以确保您不会丢失原始排序顺序并且即使在对数据进行排序后也可以将其取回:
- 制作原始数据集的副本。即使您不需要原始排序顺序,我也建议您这样做。您可以拥有一个包含所有数据的工作簿,然后只需创建工作簿的副本并处理该副本。当我处理关键数据集时,我每天都会制作一份副本(日期或版本号作为工作簿名称的一部分)。
- 添加带有一系列数字的列。当你对数据进行排序时,这一系列数字都会混淆,但如果你想回到原始数据,你可以根据这一系列数字进行排序。
在本节中,让我快速向您展示添加系列并使用它来获取原始排序顺序的含义。
假设您有一个如下所示的数据集:
为了确保您有办法在排序后取回这些数据,请添加一个帮助列并在其中包含一系列数字(如下所示)。
当您准备好帮助列时,请确保在对该数据集进行排序时将其包括在内。
假设我根据区域对这些数据进行排序,最终得到如下所示的数据:
现在,如果我想回到原始数据集,我可以简单地再次对这些数据进行排序,但基于辅助列(从低到高)。
很简单。 。不是吗?
如果您不想显示帮助列,您可以隐藏它或创建备份然后删除它。
在Excel 中对数据进行排序时的一些常见问题
在本文开头,我向您展示了在Excel 中对数据进行排序的不同方法(包括功能区中的排序按钮、右键单击选项、筛选选项和排序对话框)。
重申一下,使用排序对话框可以最大限度地减少可能出现的机会或任何问题或错误。
现在,让我向您展示使用功能区中的排序按钮时可能出现的问题(如下所示)
不识别列标题
假设您有一个如下所示的数据集:
这看起来像是一个格式正确的数据集,其标题清晰地使用单元格颜色和粗体进行了格式化。
因此,当您根据名称对这些数据进行排序时(使用功能区中的排序按钮),您会希望标题保持在顶部,其余数据将得到排序。
但是当你这样做时会发生什么– 标题也被视为普通数据并被排序(如下所示)。
虽然Excel 足够聪明,可以识别标题,但在此示例中,它未能做到这一点。使用功能区中的排序图标按钮时,您无法手动指定此数据具有标题。
注意:当我拥有数据集并添加和格式化标题并对其进行排序时,会出现此问题。通常,Excel 会足够聪明地识别数据集中有标题(尤其是当标题的数据类型和列中的数据不同时)。但是在这种情况下,当我添加标题并立即排序时,它没有这样做。如果我保存此工作簿,将其关闭并重新打开,Excel 会以某种方式设法识别第一行和标题。
虽然在大多数情况下这可能不是问题,但当您使用功能区中的排序图标时仍有机会,使用对话框可以消除此问题,因为您可以指定您有标题。
未识别空白行/列
这个排序问题有点复杂——而且比你想像的要普遍得多。
假设您有一个如下所示的数据集。请注意,第6 行是隐藏的(它是一个空白行)。
现在,如果我选择数据的前四行(隐藏空白行上方的那些)中的任何单元格并使用排序图标按钮对此数据进行排序,它只会对数据集上的前四条记录(第2 行到5)。同样,如果我选择隐藏空白行下方数据集中的任何单元格,它只会对最后七行进行排序。
除非您专门寻找它,否则您很可能会错过这个可怕的错误。
如何确保您最终不会犯此排序错误?
为确保您不会陷入此问题,您需要在对数据集进行排序之前对其进行检查。
在对数据进行排序之前选择整个数据集。
您可以通过选择数据集中的任何单元格然后使用键盘快捷键– Control + A 来做到这一点。
如果数据集中有空白行/列,则不会选择整个数据集。您可以通过快速扫描选区的轮廓来识别这一点。
如果您看到选择之外还有一些数据,您可以手动选择它。
为确保避免此问题,最好先取消隐藏所有隐藏的行和列,然后通过选择整个数据集或首先删除空白行对数据进行排序。
部分排序(基于姓氏)
有时,您可能有一个要根据部分文本进行排序的数据集。
例如,假设我有如下所示的数据集,并且我想根据姓氏对这些数据进行排序。
为此,我需要分隔这些数据,以便在一列中只有姓氏。当我拥有它时,我可以使用该列对数据进行排序。
下面是一个可以给我姓氏的公式:
=RIGHT(B2,LEN(B2)-FIND(" ",B2))
这将为您提供如下所示的结果。
现在您可以使用Last Name 列对这些数据进行排序。
完成后,您可以删除姓氏列或将其隐藏。
请注意,当您的姓名仅包含名字和姓氏并且两者之间没有双空格时,上述公式有效。如果您的名称数据不同,则必须调整公式。您还可以使用Text to Column 根据空格字符作为分隔符快速拆分名称。
这只是基于部分数据进行排序的一个示例。其他示例可能包括基于地址中的城市或基于部门代码的员工ID 进行排序。
此外,如果您需要排序的文本位于文本的开头,则只能使用普通排序功能。
其他排序示例(使用公式和VBA)
到目前为止,在本教程中,我已经介绍了我们在Excel 中使用内置排序功能的示例。
使用公式自动排序
当您使用内置的排序功能,然后对数据集进行任何更改时,您需要再次对其进行排序。排序功能不是动态的。
如果你想获得一个在有任何变化时自动排序的数据集,你可以使用公式来做到这一点。
请注意,要做到这一点,您需要将原始数据集和排序后的数据集分开(如下所示)
我有一个详细的教程,其中介绍了如何使用公式按字母顺序排序。它展示了两种方法来做到这一点——使用辅助列和使用数组公式。
Excel 还引入了SORT 动态数组公式,可以轻松做到这一点(无需辅助列或复杂的数组公式)。但由于这是相当新的,您可能无法在您的Excel 版本中访问它。
使用VBA 排序
最后,如果您想绕过所有排序对话框或其他排序选项,您可以使用VBA 对数据进行排序。
在下面的示例中,我有一个数据集,当我双击列标题时对数据进行排序。这使得排序变得容易,并且可以在仪表板中使用以使其更加用户友好。
这是一个详细的教程,其中介绍了如何使用VBA 对数据进行排序并创建如上所示的内容。
我试图涵盖很多示例,向您展示在Excel 中对数据进行排序的不同方式以及在执行此操作时需要牢记的所有事项。
希望您发现本教程很有用。