Note: The other languages of the website are Google-translated. Back to English

Excel 排序:按文本、日期、数字或颜色对数据进行排序

在 Excel 中对数据进行排序是一项常见且简单的任务,它有助于根据您选择的排序类型对数据进行重新排序。 通常,通过内置的排序功能,您可以对一列或多列中的数字、文本字符串、日期和时间进行排序; 您还可以根据您创建的自定义列表或单元格格式(例如字体颜色、背景颜色或图标)快速轻松地对数据进行排序。

除了这些简单的排序之外,您在日常工作中可能还需要更多有用和复杂的排序。 本教程将介绍一些不同种类的排序来解决您在 Excel 中的问题。

目录:

1. 访问 Excel 中的排序选项

2. 排序的基本用法

3.排序的高级用法

4.输入或更改数据时自动排序数据

5. 其他排序案例


访问 Excel 中的排序选项

为了应用排序功能,Excel 提供了多种访问排序选项的方法。

1.1 功能区中的排序按钮

应用排序功能的最快方法是使用功能区中的排序按钮。

单击包含要排序的值的列中的任何单元格,然后单击 数据 标签,在 排序和过滤 部分,点击 将A到Z排序 or 将Z排序到A 按钮以按字母顺序升序或降序对数据进行排序。 看截图:

备注:如果数据范围内有空白行,应用这些按钮后,只有选中的单元格位于空白行上方或下方的数据范围才能成功排序。


1.2 排序对话框

排序和过滤 的组 数据 标签,还有一个 排序 按钮,请参见屏幕截图:

点击后 排序 按钮,一个 排序 弹出对话框如下图所示:

那么,在 排序 对话框中,您可以根据需要选择相应的数据排序规则。

小贴士: 也可以用快捷键打开这个 排序 对话框,请按 Alt + A + S + S 键盘上的连续键。


1.3 筛选菜单中的排序选项

如果您对数据范围应用了过滤器,您还可以找到排序选项和过滤器选项。 单击任何列中的过滤器图标,您可以在展开的列表中看到排序选项,如下图所示:

备注:这些排序选项将根据列中的数据而变化:如果列中有文本,它将显示 将A到Z排序, 将Z排序到A; 如果列中有数字,它会显示 最小到最大排序, 排序最大到最小; 如果列中有日期,它将显示 从最旧到最新排序, 按最新到最旧排序.


1.4 右键排序选项

在 Excel 中,您还可以使用右键单击排序选项快速轻松地对数据进行排序,右键单击要排序值的列中的任何单元格,在上下文菜单中,您可以看到有六个排序选项可用,请选择你需要的那个,看截图:


排序的基本用法

Excel Sort 功能可以帮助您进行一些简单的排序,例如按升序或降序对数字、文本字符串、日期进行排序,根据字体或背景颜色对单元格进行排序。 本节将讨论这种排序功能的一些基本用法。


2.1 按文本、数字或日期对数据进行排序

要根据文本、数字或日期按升序或降序对一系列数据进行排序,请执行以下步骤:

1. 选择要排序的数据范围,然后单击 数据 > 排序,请参见屏幕截图:

2。 在 排序 对话框中,进行以下操作:

  • 部分,选择要基于的列名称;
  • 排序 部分,选择 单元格值 选项;
  • 订单号 部分,指定排序顺序。 (要对文本字符串进行排序,请选择 A到Z or Z到A; 要对号码列表进行排序,请选择 最小到最大 or 最大到最小; 要对日期单元格进行排序,请选择 最旧到最新 or 最新到最新.)
  • 小贴士:如果您的数据中有标题,请确保 我的数据有标题 被检查。 如果您的数据没有标题,请取消选中它。

3。 然后,点击 OK 按钮,所选数据将根据您一次指定的列进行排序。


2.2 按单元格颜色、字体颜色、单元格图标对数据进行排序

如果您想根据单元格颜色、字体颜色或条件格式图标对数据范围进行排序,排序功能可以快速解决此任务。

假设您有一个数据范围,其格式为一些单元格颜色,如下图所示,如果您需要根据单元格颜色重新排列数据,例如,您想将浅红色行放在顶部,然后是浅色黄色和浅蓝色行,要按单元格颜色对行进行排序,请执行以下操作:

1. 选择要根据单元格颜色排序的数据范围,然后单击 数据 > 排序排序 对话框。

2。 在 排序 对话框,指定以下操作:

2.1)像这样在顶部设置第一个单元格颜色:

  • 部分,选择 姓名: 或其他带有彩色单元格的列。 在这个例子中,我在所有列中都有彩色单元格,你可以选择任何列名;
  • 在下面 排序 部分,请选择 电池颜色 选项;
  • 订单号 部分,选择一种要放在顶部或底部的单元格颜色;

2.2) 然后,单击 添加关卡 按钮添加第二个和其他规则级别,重复上述步骤设置第二个和其他单元格颜色。

  • 小贴士:如果您的数据中有标题,请确保 我的数据有标题 被检查。 如果您的数据没有标题,请取消选中它。

3。 完成设置后,单击 OK 按钮,并且数据范围已按您指定的单元格颜色排序,请参见屏幕截图:

小贴士:根据上述步骤,您也可以选择根据字体颜色或单元格图标对数据进行排序 字体颜色 or 条件格式图标 在排序对话框中。


2.3 按多列对数据进行排序

如果你有一个如下截图所示的大数据集,现在你想要执行多级数据排序以更清晰地读取数据,例如,先按 Region 列排序,然后按 State 列,最后按 Sales 列排序。 你怎么能在Excel中进行这种排序?

要按多列对数据进行排序,请执行以下步骤:

1. 选择要排序的数据范围,然后单击 数据 > 排序排序 对话框。

2。 在 排序 对话框,单击 添加关卡 按钮两次,因为您要使用三列进行排序。 然后你可以看到两个 然后 规则级别已添加到列表框中:

小贴士:如果您的数据中有标题,请确保 我的数据有标题 被检查。 如果您的数据没有标题,请取消选中它。

3。 从 排序方式然后 下拉列表,选择要基于的列名称,然后选择 单元格值 来自 排序 部分分别为每个选定的列,最后,根据需要选择排序顺序。

4。 然后,点击 OK,您将得到如下图所示的排序结果:


2.4 根据自定义列表对数据进行排序

此排序功能还为您提供自定义列表排序,而不是按字母或数字顺序对数据进行排序。 例如,您希望按照您定义的状态 - 未开始、进行中、已完成对以下数据范围进行排序。 在这里,我将介绍如何处理这种类型的排序。

1. 选择要排序的数据范围,然后单击 数据 > 排序排序 对话框。

2。 在 排序 对话框中,选择要排序的列 部分,然后选择 单元格值 来自 排序 部分,在 订单号 部分,点击 自订清单 选项,请参见屏幕截图:

小贴士:如果您的数据中有标题,请确保 我的数据有标题 被检查。 如果您的数据没有标题,请取消选中它。

3。 和a 自定义列表 会弹出框,请进行以下操作:

  • 单击 新清单定制 列表框;
  • 然后,按照您需要排序的顺序输入文本字符串到 列表条目 盒子; (输入文字时,请按 输入 键来分隔条目。)
  • 最后点击 加入 按钮,新列表被添加到 自定义列表 立即开箱。

4。 然后,点击 OK 按钮返回到 排序 对话框。 新的自定义项目列表现在显示在 订单号 下拉列表。

5。 然后,单击 OK 按钮关闭对话框,结果数据范围已按您定义的自定义列表排序,请参见截图:


2.5 从左到右对数据进行排序(水平排序)

通常,您总是从上到下对数据表进行垂直排序,但有时,您可能希望根据行值对数据进行排序(从左到右排序)。 例如,在下面的数据范围中,我想根据 Name 行中的值对其进行排序。

在这种情况下,排序功能有一个内置功能,允许您从左到右排序。 请按照以下步骤操作:

1. 选择要排序的数据范围(不包括标题),然后单击 数据 > 排序 转到“排序”对话框。

2。 在弹出的 排序 对话框,单击 附加选项 按钮,然后,在 排序选项 对话框中选择 从左到右排序 选项,请参见屏幕截图:

3。 点击 OK 回到排序对话框,现在,在 部分,指定要基于的数据排序的行号,然后选择 单元格值排序 部分,最后,在 订单号 你需要的部分,看截图:

4。 然后,点击 OK,您的数据按以下屏幕截图排序:


2.6 区分大小写的数据排序

通常,数据排序不以区分大小写的顺序执行,如下面的第一个屏幕截图所示。 但是,如果您想让排序区分大小写,如下面的第二个屏幕截图所示,您如何在 Excel 中解决此任务?

要在 Excel 中执行区分大小写的排序,请执行以下操作:

1. 选择要排序的数据范围,然后单击 数据 > 排序排序 对话框。

2。 在 排序 对话框中 部分,指定要基于的列名称对数据进行排序,然后选择 单元格值排序 部分,最后,在 订单号 你需要的部分,看截图:

小贴士:如果您的数据中有标题,请确保 我的数据有标题 被检查。 如果您的数据没有标题,请取消选中它。

3. 继续点击 附加选项 此对话框中的按钮,以及 排序选项 提示框,选中 区分大小写 选项,请参见屏幕截图:

4。 点击 OK > OK 要关闭对话框,数据将按区分大小写的顺序排序,当文本相同时,先小写然后大写。 看截图:


排序的高级用法

在日常工作中,你可能会遇到其他更复杂、更实际、更具体的排序问题,本节将讨论excel中的多种排序任务。

3.1 根据频率对数据进行排序

假设您有一列数据列表,现在您希望按照数据出现频率的降序对该列进行排序,如下图所示。 在这里,我将介绍两种方法来解决这个任务。

 使用辅助列根据频率对数据进行排序

在Excel中,没有直接根据出现次数对数据进行排序的方法,这里可以创建一个辅助公式来获取每个文本的出现频率,然后按照辅助列进行排序,得到你需要的排序结果。

1. 在与原始数据相邻的空白单元格中键入以下公式,例如 B2,然后将填充手柄向下拖动到单元格以应用此公式,请参见屏幕截图:

=COUNTIF($A$2:$A$16,A2)

备注:在以上公式中, A2:A16 是包含要按频率排序的数据的列表,以及 A2 是这个列表的第一个数据。

2. 然后,继续选择公式单元格,然后单击 数据 > 将A到Z排序 or 将Z排序到A 根据需要,在弹出窗口中 排序警告 提示框,选择 扩大选择,请参见屏幕截图:

3。 然后,点击 排序 按钮,现在原始列已按频率排序,如下图所示:

提示:

1.得到结果后,您可以根据需要删除帮助列。

2. 如果存在出现次数相同的文本字符串,则相同的文本可能不会排序在一起。 在这种情况下,你应该去 排序 对话框,首先按帮助列排序,然后按文本排序,如下图所示:


 使用方便的功能根据频率对数据进行排序

如果你有 Kutools for Excel,其 高级排序 功能,您可以快速轻松地根据出现频率对数据进行排序,而无需任何辅助列。

安装后 Kutools for Excel,请这样做:

1. 选择要排序的数据列表,然后单击 Kutools 加 > 排序 > 高级排序,请参见屏幕截图:

2。 在 高级排序 对话框中,选择要排序的列 部分,然后选择 频率 排序 下拉列表,最后,指定排序顺序 订单号 部分,请参见屏幕截图:

小贴士:如果您的数据中有标题,请确保 我的数据有标题 被检查。 如果您的数据没有标题,请取消选中它。

3。 然后,点击 OK 按钮,数据列表已一次按出现次数排序,见截图:


3.2 根据字符长度对数据进行排序

如果您有一个包含不同长度文本字符串的数据列表,现在您可能需要按字符长度对数据进行排序,以使列看起来整洁。 本节将讨论如何按字符数对数据进行排序。

 使用辅助列根据字符长度对数据进行排序

要按字符长度对列进行排序,应使用 LEN 函数计算每个单元格的字符数,然后应用 Sort 函数对数据列表进行排序,请按以下步骤操作:

1。 输入此公式 = LEN(A2) 到与原始数据相邻的空白单元格中,例如,B2,然后将填充手柄向下拖动到单元格以应用此公式,请参见屏幕截图:

2. 然后,继续选择公式单元格,然后单击 数据 > 将A到Z排序 or 将Z排序到A 根据需要,在弹出窗口中 排序警告 提示框,选择 扩大选择,请参见屏幕截图:

3。 然后,点击 排序 按钮,字符串已按字符长度排序。 您可以根据需要删除辅助列 B。 看截图:


 使用简单选项根据字符长度对数据进行排序

要快速轻松地按字符数对数据进行排序,在这里,我将推荐一个方便的工具—— Kutools for Excel,其 高级排序 功能,您可以轻松处理此任务。

安装后 Kutools for Excel,请这样做:

1. 选择要排序的数据列表,然后单击 Kutools 加 > 排序 > 高级排序.

2。 在 高级排序 对话框中,选择要排序的列 部分,然后选择 文本长度 来自 排序 下拉列表,最后,指定您需要的排序顺序 订单号 部分。 看截图:

小贴士:如果您的数据中有标题,请确保 我的数据有标题我已检查。 如果您的数据没有标题,请取消选中它。

3。 然后,点击 OK 按钮,列表中的文本字符串已按字符长度排序,如下图所示:


3.3 按姓氏排序全名

在对全名列表进行排序时,Excel 会使用姓名的第一个字符进行排序,但是如果要按姓氏对数据进行排序呢? 在这里,我将为您带来一些技巧,让您轻松地在 Excel 中按姓氏对全名进行排序。

 使用帮助列按姓氏对全名进行排序

根据姓氏排序全名,您应该将姓氏提取到一个新列中,然后应用排序功能根据分隔的姓氏字母顺序对全名进行排序。 请按照以下步骤操作:

1. 将以下公式输入或复制到与原始数据相邻的空白单元格中,例如 B2,然后将填充手柄向下拖动到单元格以应用此公式,请参见屏幕截图:

=RIGHT(A2,LEN(A2)-FIND("@",SUBSTITUTE(A2," ","@",LEN(A2)-LEN(SUBSTITUTE(A2," ","")))))

2. 继续选择公式单元格,然后单击 数据 > 将A到Z排序 or 将Z排序到A 根据需要,在弹出窗口中 排序警告 提示框,选择 扩大选择,请参见屏幕截图:

3。 然后,点击 排序 按钮,您将获得根据姓氏排序的全名,完成后,您可以根据需要删除帮助列。 看截图:


 使用快速方法按姓氏对全名进行排序

如果您不熟悉公式,要在没有任何公式的情况下按姓氏对全名进行排序, 高级排序 的特点 Kutools for Excel 可以帮你一个忙。

安装后 Kutools for Excel,请这样做:

1. 选择要排序的全名单元格,然后单击 Kutools 加 > 排序 > 高级排序.

2。 在 高级排序 对话框中,选择要排序的列 部分,然后选择 姓氏 来自 排序 下拉列表,最后,根据需要在 订单号 部分。 看截图:

小贴士:如果您的数据中有标题,请确保 我的数据有标题 被检查。 如果您的数据没有标题,请取消选中它。

3。 然后,点击 OK 按钮,全名列已立即按姓氏排序。


3.4 按域对电子邮件地址进行排序

如果您有一个电子邮件地址列表要按域排序,而不仅仅是按地址的第一个字母排序,那么您在 Excel 中怎么办? 本节将讨论按域对电子邮件地址进行排序的一些快速方法。

 使用帮助列按域对电子邮件地址进行排序

在这里,您可以创建一个公式将电子邮件域提取到另一列中,然后根据新域列对原始电子邮件地址进行排序。

1. 在电子邮件地址旁边的空白单元格中键入以下公式,在本例中,我将在单元格 C2 中输入此公式,然后将填充手柄拖动到要应用此公式的范围。 然后将从地址中提取所有电子邮件域,请参见屏幕截图:

=RIGHT(B2,LEN(B2)-FIND("@",B2))

2. 保持选中公式单元格,然后单击 数据 > 将A到Z排序 or 将Z排序到A 根据需要,在 排序警告 对话框,检查 扩大选择,请参见屏幕截图:

3。 然后,单击 排序 按钮按您指定的升序或降序按电子邮件域对数据进行排序。

4. 排序后,您可以根据需要删除辅助列。


 只需单击几下,即可按域对电子邮件地址进行排序

如果你有 Kutools for Excel,其 高级排序 功能,只需单击几下,即可按域名的字母顺序对电子邮件地址进行排序。

安装后 Kutools for Excel,请这样做:

1. 选择要排序的整个数据范围,然后单击 Kutools 加 > 排序 > 高级排序.

2。 在 高级排序 对话框中,选择要排序的列 部分,然后选择 邮件域 来自 排序 下拉列表,最后,指定您需要的排序顺序 订单号 部分。 看截图:

小贴士:如果您的数据中有标题,请确保 我的数据有标题 被检查。 如果您的数据没有标题,请取消选中它。

3。 点击 OK,并且数据范围已按电子邮件域排序,如下图所示:


3.5 对一列进行排序以匹配另一列

如果您有两列数据完全相同或几乎相同,但顺序不同,现在您可能需要对两列进行排序,以便相同的值在两列中的相同行上对齐。 本节,我将介绍这种排序的两种情况。

 对具有完全相同项目的两列进行排序以进行匹配

例如,我有两列包含相同的项目但顺序不同,在这里,我想对第二列进行排序以匹配第一列,如下图所示。

1. 在原始数据旁边的空白单元格中键入以下公式,然后拖动填充柄以将此公式应用于列表中的所有单元格,这将返回 B 列中每个值的位置与 A 列中的每个值的位置,请参阅屏幕截图:

=MATCH(B2,$A$2:$A$10,0)

2. 然后,选择 B 列和新的辅助列,然后单击 数据 > 排序排序 对话框中 排序 对话框中,进行以下操作:

  • 部分;
  • 然后,选择 单元格值排序 部分;
  • 最后选择 最小到最大 在选项 订单号 部分。

3。 然后,单击 OK 按钮。 现在,您将获得完全匹配的两列,如下面的屏幕截图所示。 您可以根据需要删除公式列。


 对不完全相同项目的两列进行排序以进行匹配

有时,两列中的项目可能不完全相同。 例如,我想对第二列中的数据进行排序以匹配第一列中的数据,以便使相同的值在相同的行上对齐,如下面的屏幕截图所示。

1. 在两列之间插入一个新的空白列。

2. 在单元格 B2 中输入以下公式,然后拖动填充手柄将此公式填充到您需要的单元格。 现在,您可以看到 C 列中的数据已被排序以匹配 A 列中的数据。

=IF(ISNA(MATCH(A2,$C$2:$C$8,0)),"",INDEX($C$2:$C$8,MATCH(A2,$C$2:$C$8,0)))


3.6 从数据列表中排序和提取唯一值

如果您有一个包含一些重复项的值列表,现在,您只想提取唯一值并按字母顺序对它们进行排序,如下面的屏幕截图所示,在这里,我将介绍一些用于处理此类排序的公式。

1. 请在空白单元格中输入以下公式 - C2,然后按 Ctrl + Shift + Enter 获得第一个结果的键,见截图:

=IFERROR(INDEX($A$2:$A$12,MATCH(0,COUNTIF($A$2:$A$12,"<"&$A$2:$A$12)-SUM(COUNTIF($A$2:$A$12,"="&C$1:C1)),0)),"")

备注: 在公式, A2:A12 是您要从中提取唯一值的数据列表, C1 是您输入的公式上方的单元格。 请根据您的需要更改它们。

2. 然后拖动填充柄提取值,直到出现空白单元格,所有唯一值将被提取并按升序排序,见截图:

小贴士:

1.如果您希望提取的唯一值按降序排序,请应用以下公式:(记得按 Ctrl + Shift + Enter 键)

=IFERROR(INDEX($A$2:$A$12,MATCH(0,COUNTIF($A$2:$A$12,">"&$A$2:$A$12)-SUM(COUNTIF($A$2:$A$12,"="&C$1:C1)),0)),"")

2. 如果数据列表包含空格单元格、数值,上面的公式将不起作用,在这种情况下,您应该使用以下公式:(记得按 Ctrl + Shift + Enter 键)

=IFERROR(SMALL(IF((COUNTIF($C$1:C1,$A$2:$A$12)=0)*ISNUMBER($A$2:$A$12),$A$2:$A$12,"A"),1),INDEX($A$2:$A$12,MATCH(SMALL(IF(ISTEXT($A$2:$A$12)*(COUNTIF(C1:$C$1,$A$2:$A$12)=0),COUNTIF($A$2:$A$12,"<"&$A$2:$A$12),""),1),IF(ISTEXT($A$2:$A$12),COUNTIF($A$2:$A$12,"<"&$A$2:$A$12),""),0)))


3.7 一次对多行或多列进行独立排序

我们很容易根据一行或一列对一系列数据进行排序,但有时您可能希望独立地按字母顺序排列范围内的每一行或每一列,您如何在 Excel 中完成此任务?

 单独对多行进行排序

假设您有一系列数据应该在每一行中按字母顺序重新排列,如下面的屏幕截图所示,为了解决这个问题,这里有两个快速技巧。

使用公式一次独立排序多行

1. 将行标签复制到要获得排序结果的另一个位置。

2. 然后,将以下公式复制或输入到空白单元格 - H2 中,然后按 Ctrl + Shift + Enter 键在一起以获得第一个结果,请参见屏幕截图:

=INDEX($B2:$E2, MATCH(COLUMNS($B2:B2), COUNTIF($B2:$E2, "<="&$B2:$E2), 0))

3. 然后,选择公式单元格H2,向右拖动填充手柄,将公式复制到第一行的其他单元格,在本例中,拖动到单元格K2,见截图:

4. 继续选择第一行 (H2:K2) 中的公式单元格,然后向下拖动填充手柄以将公式复制到其他行。 现在,您可以看到每行中的值已按升序单独排序。


使用VBA代码一次独立地对多行进行排序

以下 VBA 代码还可以帮助您轻松地按字母顺序对每一行中的数据进行排序。 请按照以下步骤操作:

1. 在每一行中选择要排序的数据。

2。 按住 ALT + F11 键打开 Microsoft Visual Basic应用程序 窗口。

3。 然后,点击 插页 > 模块,然后将以下代码粘贴到 模块 窗口。

VBA代码:一次独立排序多行

Sub SortIndividualR()
'Updateby Extendoffice
    Dim xRg As Range, yRg As Range
    If TypeName(Selection) <> "Range" Then Exit Sub
    Set xRg = Selection
    If xRg.Count = 1 Then
        MsgBox "Select multiple cells!", vbExclamation, "Kutools for Excel"
        Exit Sub
    End If
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
    End With
    Application.ScreenUpdating = False
    For Each yRg In xRg.Rows
        yRg.Sort Key1:=yRg.Cells(1, 1), _
        Order1:=xlAscending, _
        Header:=xlNo, _
        Orientation:=xlSortRows
    Next yRg
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
    End With
    Application.ScreenUpdating = True
End Sub

4。 然后按 F5 运行此代码的关键,每行中的数据立即按升序排序,请参见截图:


 单独对多列进行排序

要单独对每列中的数据进行排序,以下两种方法可以帮到您。

使用公式一次独立对多列进行排序

1. 将列标签复制到要获得排序结果的另一个位置。

2. 然后,在空白单元格中输入以下公式 - F3,然后按 Ctrl + Shift + Enter 键一起获得第一个结果,然后,向下拖动填充手柄以将此公式复制到其他行,请参见屏幕截图:

=INDEX(A$3:A$6,MATCH(ROWS(A$3:A3),COUNTIF(A$3:A$6,"<="&A$3:A$6),0))

3. 继续选择第一行 (F3:F6) 中的公式单元格,然后向右拖动填充手柄以将公式复制到其他列。 现在,每列中的值已按升序单独排序,如下图所示:


使用VBA代码一次独立地对多列进行排序

要对多列数据进行独立排序,下面的VBA代码也可以帮到你,请这样做:

1。 按住 ALT + F11 键打开 Microsoft Visual Basic应用程序 窗口。

2。 然后,点击 插页 > 模块,然后将以下代码粘贴到 模块 窗口。

VBA代码:一次独立排序多列

Sub SortIndividualJR()
'Updateby Extendoffice
    Dim xRg As Range
    Dim yRg As Range
    Dim ws As Worksheet
    Set ws = ActiveSheet
    On Error Resume Next
    Set xRg = Application.InputBox(Prompt:="Range Selection:", _
                                    Title:="Kutools for excel", Type:=8)
    Application.ScreenUpdating = False
    For Each yRg In xRg
        With ws.Sort
            .SortFields.Clear
            .SortFields.Add Key:=yRg, Order:=xlAscending
            .SetRange ws.Range(yRg, yRg.End(xlDown))
            .Header = xlNo
            .MatchCase = False
            .Apply
        End With
    Next yRg
    Application.ScreenUpdating = True
End Sub

3。 然后按 F5 键运行这段代码,会弹出提示框,请选择要排序的数据范围,看截图:

4。 然后,单击 OK,每一列都已快速单独排序。


3.8 Excel中随机排序数据

我们通常会按字母顺序对数据进行升序或降序排序,但您是否尝试过对选定范围内的数据进行随机排序? 本节,我将讨论如何以随机顺序打乱一系列单元格。

 使用辅助列对一列数据进行随机排序

通常,您可以使用 RAND 函数获取随机数,然后根据此随机列表对数据进行排序,请按以下步骤操作:

1。 输入以下公式: = RAND() 进入数据旁边的空白单元格,然后向下拖动填充手柄以填充随机数列表,如下图所示:

2. 继续选择公式单元格,然后单击 DATA > 将A到Z排序 or 将Z排序到A 根据需要,在弹出窗口中 排序警告 提示框,选择 扩大选择,请参见屏幕截图:

3。 然后,单击 排序 按钮,数据列表已经被一次洗牌,看截图:


 使用惊人的功能对单元格、行或列进行随机排序

Kutools for Excel 支持一个强大的功能—— 随机排序范围,使用此功能,您可以随机化单元格范围内、选择的每一列/行中的数据,或一次随机化整行或整列。

安装后 Kutools for Excel,请这样做:

1. 选择要随机排序的数据范围,然后单击 Kutools 加 > 排序 > 随机排序范围。 看截图:

2。 在 随机排序/选择范围 对话框中的 排序 选项卡,选择您需要的以下选项之一:

  • 整行:随机打乱所选范围内的整行。
  • 整列:随机打乱所选范围内的整列。
  • 每行中的单元格:单独随机排列每行中的单元格。
  • 每列中的单元格: 单独洗牌每列中的单元格。
  • 范围内的所有单元格:随机化选定范围内的所有单元格。

3。 然后,点击 Ok 按钮,数据立即随机化。


3.9 根据月、日或月日对日期列表进行排序

在 Excel 中对日期进行排序时,排序功能将默认按年、月、日对日期列表进行排序,但在某些情况下,您可能需要按月或日或月和日排列日期,而忽略年。 如何在Excel中解决这个问题?

 使用辅助列按月或日对日期列表进行排序

要仅根据月或日对日期进行排序,您可以从日期中提取月或日编号,然后按提取的月或日编号列对日期进行排序。

1. 请在您的数据旁边的空白单元格中输入以下公式,然后向下拖动填充手柄以将此公式复制到其他单元格,请参见屏幕截图:

=MONTH(B2)        (extract month number)
= DAY(B2)             
(提取天数)

2. 返回月或日数字后,继续选择公式单元格,然后单击 数据 > 将A到Z排序 or 将Z排序到A 根据需要,在弹出窗口中 排序警告 提示框,选择 扩大选择,请参见屏幕截图:

3。 然后,点击 排序 按钮,日期现在按月排序,忽略年和日。 看截图:


 单击几下,按月或日对日期列表进行排序

如果你有 Kutools for Excel,其 高级排序 功能,您可以通过几次单击仅按月或日对日期列表进行排序。

安装后 Kutools for Excel,请执行以下步骤:

1. 选择要排序的数据范围,然后单击 Kutools 加 > 排序 > 高级排序.

2。 在 高级排序 对话框中,选择要排序的列 部分,然后选择 or 白天 来自 排序 下拉列表,最后,指定您需要的排序顺序 订单号 部分。

小贴士:如果您的数据中有标题,请确保 我的数据有标题 被检查。 如果您的数据没有标题,请取消选中它。

3。 然后,点击 OK 按钮,数据已根据您指定的月份或日期排序,而忽略年份,请参见屏幕截图:


 使用辅助列按月和日对日期列表进行排序

现在,如果您只需要按月和日对日期列表进行排序而不需要年份,TEXT 函数可以帮助将日期转换为指定格式的文本字符串,然后根据需要应用排序功能。

1. 在数据旁边的空白单元格中输入以下公式,然后将此公式复制到数据的底部,月份和日期已被提取为文本字符串,如下图所示:

=TEXT(B2,"MMDD")

2. 保持公式单元格处于选中状态,然后单击 数据 > 将A到Z排序 or 将Z排序到A 根据需要,在弹出窗口中 排序警告 提示框,选择 扩大选择,请参见屏幕截图:

3。 然后,点击 排序 按钮,现在,您的数据仅按月和日排序。


3.10 根据星期几对日期列表进行排序

根据星期几对日期列表进行排序,这意味着将日期从周一到周日或周日到周六排序。 在本节中,我将介绍两种在 Excel 中完成此任务的方法。

 使用辅助列按星期几对日期列表进行排序

按星期几对日期进行排序,您还需要一个辅助列来返回一个与星期几对应的数字,然后按辅助列对日期进行排序。

1. 请将以下公式输入或复制到空白单元格中,然后向下拖动填充手柄以将此公式复制到其他单元格,请参见屏幕截图:

=WEEKDAY(B2)           (Start from Sunday (1) to Saturday(7))
=星期(B2,2)       
(从星期一 (1) 到星期日 (7))

2. 保持公式单元格处于选中状态,然后单击 数据 > 将A到Z排序 or 将Z排序到A 根据需要,在弹出窗口中 排序警告 提示框,选择 扩大选择,请参见屏幕截图:

3。 然后,点击 排序 按钮来获得你需要的排序结果,看截图:


 使用简单选项按星期几对日期列表进行排序

的帮助下 Kutools for Excel高级排序 功能,您可以在没有任何辅助公式的情况下尽快解决此问题。

安装后 Kutools for Excel,请这样做:

1. 选择要排序的数据范围,然后单击 Kutools 加 > 排序 > 高级排序.

2。 在 高级排序 对话框中,选择要排序的列 部分,然后选择 一周中的天 来自 排序 下拉列表,最后,指定您需要的排序顺序 订单号 部分。

小贴士:如果您的数据中有标题,请确保 我的数据有标题 被检查。 如果您的数据没有标题,请取消选中它。

3。 然后,点击 OK 按钮,数据已根据需要按星期几排序。 看截图:


3.11 根据季度对日期列表进行排序

本节将讨论如何在不考虑年份的情况下按季度对日期列表进行排序,为您提供两个技巧。

 使用辅助列按季度对日期列表进行排序

就像上面的解决方案一样,您应该创建一个公式辅助列来从给定日期中提取季度数,然后根据这个新的辅助列对日期进行排序。

1. 请将以下公式输入或复制到空白单元格中,然后向下拖动填充手柄以将此公式复制到其他单元格,请参见屏幕截图:

=ROUNDUP(MONTH(B2)/3,0)

2. 继续选择公式单元格,然后单击 数据 > 将A到Z排序 or 将Z排序到A 根据需要,在弹出窗口中 排序警告 提示框,选择 扩大选择,请参见屏幕截图:

3。 然后,点击 排序 按钮,数据范围已按季度排序,如下图所示:


 使用方便的功能按季度对日期列表进行排序

如果你有 Kutools for Excel 安装好了 高级排序 功能可以帮助您通过几次点击来解决这个任务。

1. 选择要排序的数据范围,然后单击 Kutools 加 > 排序 > 高级排序.

2。 在 高级排序 对话框中,选择要排序的列 部分,然后选择 来自 排序 下拉列表,最后,指定您需要的排序顺序 订单号 部分。

小贴士:如果您的数据中有标题,请确保 我的数据有标题 被检查。 如果您的数据没有标题,请取消选中它。

3。 最后点击 OK 按钮,所选范围根据您的需要按季度排序。


3.12 根据月份名称或工作日名称对数据进行排序

假设您有一个月份名称列表作为文本,在对月份名称进行排序时,它们将按字母顺序排列,而不是从一月到十二月按月份顺序排列。 如果您需要对从一月到十二月的月份名称进行排序,排序功能中的自定义排序可能会对您有所帮助。

1. 选择要根据月份名称排序的数据范围,然后单击 数据 > 排序排序 对话框。

2。 在 排序 对话框中 部分,选择包含月份名称的列名,在 排序 部分中,选择 单元格值,最后,在 订单号 部分,选择 自订清单,请参见屏幕截图:

小贴士:如果您的数据中有标题,请确保 我的数据有标题 被检查。 如果您的数据没有标题,请取消选中它。

3。 然后,在弹出 自订清单 对话框中,根据月份在工作表中的列出方式选择完整的月份名称(一月、二月、三月...)或简称(一月、二月、三月...),请参见屏幕截图:

4。 然后,单击 OK > OK 关闭对话框,现在,您的数据已按时间顺序按月份名称排序,如下图所示:

小贴士:要按工作日名称排序,请在 自定义列表 您需要的对话框。


3.13 根据奇数或偶数对数据进行排序

我们可能很容易在 Excel 中按升序或降序对数字进行排序,但是,您是否尝试过将列表中的数字从奇数到偶数或偶数到奇数排序? 本节,我将介绍一些完成此任务的方法。

 使用辅助列按奇数或偶数对数据进行排序

按奇数或偶数对数字列表进行排序,您应该创建一个公式来识别奇数或偶数,然后应用排序功能。

1. 在数字列表旁边,请输入此公式 = ISODD(A2) 在空白单元格中,然后拖动以将公式复制到其他单元格,现在,您可以看到显示 TRUEs 和 FALSEs,TRUE 表示奇数,FALSE 表示偶数。

2。 继续选择公式单元格,然后单击 数据 > 将A到Z排序 or 将Z排序到A 根据需要,在弹出窗口中 排序警告 提示框,选择 扩大选择,请参见屏幕截图:

3。 然后点击 排序 按钮,所有偶数都已排序在一起,然后是奇数,反之亦然。 看截图:


 使用有用的功能按奇数或偶数对数据进行排序

的帮助下 Kutools for Excel高级排序 功能,您可以快速将数字从奇数排序到偶数,反之亦然。

安装后 Kutools for Excel,请这样做:

1. 选择要排序的数据范围,然后单击 Kutools 加 > 排序 > 高级排序.

2。 在 高级排序 对话框中,单击要排序的列 部分,然后选择 奇偶数 来自 排序 部分,然后指定排序顺序 (A到Z 从偶数到奇数排序,和 Z到A 从奇数到偶数排序),见截图:

小贴士:如果您的数据中有标题,请确保 我的数据有标题 被检查。 如果您的数据没有标题,请取消选中它。

3。 然后点击 OK 按钮,您将获得以下结果:


3.14 根据绝对值对数据进行排序

如果列中同时存在正数和负数,则在排序时,Excel 中默认按升序或降序排列数字。 但是,在某些情况下,您可能希望在对数据进行排序时忽略负号,这意味着按绝对值对数字进行排序。 如何在 Excel 中完成此任务?

 使用辅助列按绝对值对数据进行排序

要按绝对值对数字进行排序,通常应先创建一个公式将所有值转换为绝对值,然后应用 Sort 函数对数字进行排序。

1。 在相邻的空白单元格(例如B2)中,输入以下公式 = ABS(A2),然后拖动填充柄以将此公式复制到其他单元格。 现在,您可以看到所有值都已转换为绝对值:

2. 保持公式单元格处于选中状态,然后单击 数据 > 将A到Z排序 or 将Z排序到A 根据需要,在弹出窗口中 排序警告 提示框,选择 扩大选择,请参见屏幕截图:

3。 然后点击 排序 按钮,所有数字都按绝对值排序,如下图所示:


 使用方便的选项按绝对值对数据进行排序

如果你厌倦了创建辅助栏,这里,我会推荐 Kutools for Excel,其 高级排序 功能,您可以直接简单地按绝对值对数字进行排序。

安装后 Kutools for Excel,请执行以下步骤:

1. 选择要排序的数据范围,然后单击 Kutools 加 > 排序 > 高级排序.

2。 在 高级排序 对话框中,单击要排序的列 部分,然后选择 绝对 价值来自 排序 部分,然后,指定排序顺序,看截图:

小贴士:如果您的数据中有标题,请确保选中我的数据有标题。 如果您的数据没有标题,请取消选中它。

3。 然后,点击 OK, 所有的数字都会从最小到最大或从最大到最小值排序,忽略负号。


输入或更改数据时自动对数据进行排序

Excel 中的排序功能不是动态的,每次更改后或添加新数据时都必须重新排序数据。 在本节中,我将讨论每次在数据范围中添加新值时如何自动对数据进行排序。


4.1 用公式对列中的数值进行自动排序

要自动按升序或降序对数字列表进行排序,您可以使用基于 LERGE、SMALL 和 ROW 函数的公式。

1. 请将以下公式输入或复制到源数据旁边的空白单元格中,然后将填充手柄向下拖动到要应用此公式的单元格,然后数字将从最小到最大值排列,请参见截图:

=IFERROR(SMALL($A$2:$A$100,ROWS(B$2:B2)),"")

备注:在此公式中, A2:A100 是您要自动排序的数字列表,包括一些用于新条目的空单元格, B2 是您输入公式的单元格。

2. 现在,当更改源数据或输入新数据时,排序列表将自动刷新,如下图所示:

小贴士:要自动按降序对数字进行排序,请应用以下公式:

=IFERROR(LARGE($A$2:$A$100,ROWS(B$2:B2)),"")


4.2 使用公式对列中的文本值进行自动排序

如果您想自动对列中的文本值进行排序,上面的公式将不起作用,这里,另一个公式可以帮助您,请按以下步骤操作:

1. 将以下公式输入或复制到数据列旁边的空白单元格中,然后按 Ctrl + Shift + Enter 键一起获取第一个文本,然后选择公式单元格,并将填充手柄向下拖动到要排序的单元格,请参见截图:

=IFERROR(INDEX($A$2:$A$100,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$100,">="&$A$2:$A$100),0)),"")

2. 从现在开始,在A列输入值或更改原始数据时,B列中的文本字符串将自动按升序排列,见下面的演示:

小贴士:要自动按降序对文本字符串进行排序,请应用以下公式(记得按 Ctrl + Shift + Enter 键):

=IFERROR(INDEX($A$2:$A$100,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$100,">="&$A$2:$A$100),0)),"")


4.3 使用 VBA 代码自动排序列中数字和文本值的混合

如果列中有数值和文本值,要自动对数据列表进行排序,下面的 VBA 代码可能会对您有所帮助。

1. 右键单击要自动对数据进行排序的工作表选项卡,然后选择 查看代码 从上下文菜单中,在弹出窗口中 Microsoft Visual Basic应用程序 窗口,请复制以下代码并将其粘贴到空白处 模块 窗口,请参见屏幕截图:

VBA 代码:按升序输入或更改数据时自动排序:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    On Error Resume Next
    If Application.Intersect(Target, Application.Columns(1)) Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    Range("A1").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, _
                                        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

备注:在上面的代码中,输入的数据会自动在A列进行排序。 A1 是标题,并且 A2 是数据列表的第一个单元格。

2. 然后,保存并关闭代码窗口。 现在,当您在 A 列中输入新数据或更改原始数据时,数据将自动按升序排序。 见下面的演示:

小贴士:如果要按降序对数据列表进行排序,请应用以下代码:

VBA 代码:按降序输入或更改数据时自动排序:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    On Error Resume Next
    If Application.Intersect(Target, Application.Columns(1)) Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    Range("A1").Sort Key1:=Range("A2"), Order1:=xlDescending, Header:=xlYes, _
                                        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

其他排序案例

您在日常工作中可能会遇到其他各种分拣需求。 在本节中,我将介绍一些其他的排序类型,例如对单元格内的数据进行排序,对列或行中的数据进行逆序排序等。


5.1 对单元格内的数据进行排序

按字母顺序对单个单元格内的文本字符串进行排序,例如将文本“HDAW”排序为“ADHW”; 或者对单元格中多个以逗号分隔的单词进行排序,例如将“word、outlook、excel、access”排序为“access、excel、outlook、word”。 本节将讲如何解决Excel中的这种排序。

 按字母顺序对单元格内的字符串值进行排序

按字母顺序对单元格内的字符串值进行排序,您应该创建一个用户定义的函数。 请这样做:

1。 按住 ALT + F11 键打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,然后将以下代码粘贴到 模块 窗口。

VBA 代码:对单元格内的文本值进行排序

Function SortCellContents(xRange As Range)
'Updateby Extendoffice
Dim xArr
Dim xF1, xF2 As Integer
Dim xStrValue As String
Dim xStrT As String
If xRange.Count <> 1 Then
    Exit Function
End If
xStrValue = xRange.Value
ReDim xArr(1 To Len(xStrValue))
For xF1 = 1 To UBound(xArr)
    xArr(xF1) = Mid(xStrValue, xF1, 1)
Next
For xF1 = 1 To UBound(xArr)
    For xF2 = xF1 To UBound(xArr)
        If Asc(xArr(xF2)) < Asc(xArr(xF1)) Then
            xStrT = xArr(xF2)
            xArr(xF2) = xArr(xF1)
            xArr(xF1) = xStrT
        End If
    Next xF2
Next xF1
SortCellContents = Join(xArr, "")
End Function

3. 然后保存并关闭此代码,返回到您的工作表。 然后输入这个公式 =排序单元内容(A2) 到返回结果的空白单元格中,向下拖动填充柄将公式复制到其他单元格,然后单元格中的所有文本值将按字母顺序排序,见截图:


 按字母顺序对单元格内由分隔符分隔的文本字符串进行排序

如果一个单元格中有多个由特定分隔符分隔的单词,要在单元格内按字母顺序对它们进行排序,下面的用户定义函数可以帮助您。

1。 按住 ALT + F11 键打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,然后将以下代码粘贴到 模块 窗口。

VBA代码:对单元格内以逗号分隔的文本字符串进行排序

Function SortCellWithSeparator(CellAddress As Range, DelimiterChar As String, IncludeSpaces As Boolean) As String
'Updateby Extendoffice
Dim xRg As Range
Dim xString As String
Dim xF1, xF2 As Integer
Dim xSArr
Dim xStrT As String
Dim xStrValue As String
Set xRg = CellAddress
xStrValue = WorksheetFunction.Substitute(xRg.Value, " ", "")
xSArr = Split(xStrValue, DelimiterChar)
    For xF1 = 0 To UBound(xSArr)
        For xF2 = xF1 + 1 To UBound(xSArr)
                If xSArr(xF2) < xSArr(xF1) Then
                    xStrT = xSArr(xF2)
                    xSArr(xF2) = xSArr(xF1)
                    xSArr(xF1) = xStrT
                End If
        Next xF2
    Next xF1
xStrValue = ""
For xF1 = 0 To UBound(xSArr)
    xStrValue = xStrValue & xSArr(xF1) & DelimiterChar
Next xF1
SortCellWithSeparator = xStrValue
SortCellWithSeparator = Left(SortCellWithSeparator, Len(SortCellWithSeparator) - 1)
If IncludeSpaces = True Then SortCellWithSeparator = WorksheetFunction.Substitute(SortCellWithSeparator, ",", ", ")
End Function

3. 然后保存并关闭此代码,返回到您的工作表,输入此公式 =SortCellWithSeparator(A2,",",TRUE) 到返回结果的空白单元格中,然后向下拖动填充手柄将公式复制到其他单元格,单元格中的所有文本字符串将按字母顺序排序,见截图:

备注: 如果你的文本字符串被其他分隔符分隔,你只需要将这个公式中的逗号更改为你自己的分隔符。


5.2 反转/翻转列或行中数据的顺序

有时,您可能需要颠倒垂直数据范围内的数据顺序或水平数据范围内的从左到右的数据顺序。 本节将介绍三种在 Excel 中解决此任务的方法。

 使用公式反转/翻转列或行中数据的顺序

以下公式可以帮助翻转列或行中数据的顺序,请这样做:

翻转列中数据的顺序

请将以下公式输入或复制到您要放置结果的空白单元格中,然后将填充手柄向下拖动到单元格以相反顺序返回单元格值,请参见屏幕截图:

=OFFSET($A$10,-(ROW(A1)-1),0)

备注:在以上公式中, A1 是第一个单元格并且 A10 是列中的最后一个单元格。


翻转一行中数据的顺序

应用以下公式在一行中水平翻转数据的顺序:

=OFFSET($A$1,,COUNTA(1:1)-COLUMN(A1),)

备注:在以上公式中, A1 是该行中的第一个单元格,并且 1:1 是您的数据所在的行号。 如果数据在第 10 行,则应将其更改为 10:10。

然后,将填充手柄向右拖动到单元格,直到提取所有值,您将获得所有数据水平反转,请参见屏幕截图:


 使用 VBA 代码反转/翻转多列或多行中的数据顺序

上述公式仅适用于单列或单行,如果有多个列或行需要反转数据,以下 VBA 代码可以帮助您。

垂直翻转一系列单元格中的数据顺序

1. 首先,您应该备份您的原始数据,然后按住 ALT + F11 键打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,然后将以下代码粘贴到 模块 窗口。

VBA代码:垂直翻转一系列单元格

Sub Flipvertically()
'updateby Extendoffice
Dim Rng As Range
Dim WorkRng As Range
Dim Arr As Variant
Dim i As Integer, j As Integer, k As Integer
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Arr = WorkRng.Formula
For j = 1 To UBound(Arr, 2)
    k = UBound(Arr, 1)
    For i = 1 To UBound(Arr, 1) / 2
        xTemp = Arr(i, j)
        Arr(i, j) = Arr(k, j)
        Arr(k, j) = xTemp
        k = k - 1
    Next
Next
WorkRng.Formula = Arr
End Sub

3。 然后按 F5 键运行这段代码,会弹出一个提示框,让你选择要垂直反转的数据范围,看截图:

4。 然后,点击 OK 按钮,数据范围将垂直反转,如下图所示:


水平翻转一系列单元格中的数据顺序

要按水平顺序反转数据范围,请应用以下VBA代码:

VBA代码:垂直翻转一系列单元格

Sub Fliphorizontally()
'updateby Extendoffice
Dim Rng As Range
Dim WorkRng As Range
Dim Arr As Variant
Dim i As Integer, j As Integer, k As Integer
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Arr = WorkRng.Formula
For i = 1 To UBound(Arr, 1)
    k = UBound(Arr, 2)
    For j = 1 To UBound(Arr, 2) / 2
        xTemp = Arr(i, j)
        Arr(i, j) = Arr(i, k)
        Arr(i, k) = xTemp
        k = k - 1
    Next
Next
WorkRng.Formula = Arr
End Sub

运行这段代码后,行中的数据已经被水平反转,见截图:


 只需单击一下,即可反转/翻转列或行中的数据顺序

如果你有 Kutools for Excel,其 翻转垂直范围翻转水平范围 功能,只需单击一下即可在垂直和水平方向上反转单元格的范围。

安装后 Kutools for Excel,请这样做:

垂直翻转一系列单元格中的数据顺序

1. 选择要反转的数据范围,然后单击 库工具 > Range > 翻转垂直范围 > 全部商品 / 仅翻转值,请参见屏幕截图:

小贴士:如果你选择 全部商品 选项,所有单元格格式将同时反转; 如果你选择 仅翻转值,只有单元格值将被反转。

2. 然后,数据范围将立即垂直反转。


水平翻转一系列单元格中的数据顺序

1。 选择数据范围,然后单击 库工具 > Range > 翻转水平范围 > 所有/仅翻转值,请参见屏幕截图:

小贴士:如果你选择 全部商品 选项,所有单元格格式将同时反转; 如果你选择 仅翻转值,只有单元格值将被反转。

2. 然后,选择中的所有单元格值将立即水平反转,如下图所示:


5.3 在 Excel 中按字母顺序或选项卡颜色对工作表选项卡进行排序

假设您的工作簿中有大量工作表,如果您需要按字母顺序对工作表标签进行排序,或者根据标签颜色对工作表标签进行排序,那么通常的方法——拖放工作表标签会浪费很多时间。 在本节中,我将讨论一些按升序或降序排列工作表标签的技巧。

 使用 VBA 代码按字母顺序对工作表选项卡进行排序

以下 VBA 代码可以帮助按字母顺序按升序或降序对工作表选项卡进行排序,请执行以下操作:

1。 按住 ALT + F11 键打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,然后将以下宏粘贴到 模块 窗口。

VBA:按字母顺序对所有工作表进行排序

Sub SortWorkBook()
'Updateby Extendoffice
Dim xResult As VbMsgBoxResult
xTitleId = "KutoolsforExcel"
xResult = MsgBox("Click Yes to sort sheets in ascending order;" & Chr(10) & "Click No will sort in descending order", vbYesNoCancel + vbQuestion + vbDefaultButton1, xTitleId)
For i = 1 To Application.Sheets.Count
    For j = 1 To Application.Sheets.Count - 1
        If xResult = vbYes Then
            If UCase$(Application.Sheets(j).Name) > UCase$(Application.Sheets(j + 1).Name) Then
                Sheets(j).Move after:=Sheets(j + 1)
            End If
            ElseIf xResult = vbNo Then
                If UCase$(Application.Sheets(j).Name) < UCase$(Application.Sheets(j + 1).Name) Then
                    Application.Sheets(j).Move after:=Application.Sheets(j + 1)
            End If
        End If
    Next
Next
End Sub

3. 然后,按 F5 运行这个宏的键,在下面的提示框中,点击 ,所有工作表将按字母升序排列; 点击 没有,所有工作表将根据您的需要按字母顺序降序排列。


 使用强大的功能按字母/字母数字顺序对工作表选项卡进行排序

Kutools for Excel 提供强大的功能– 排序表,使用此功能,您可以按字母顺序或字母数字顺序对工作表进行排序、根据标签颜色对工作表进行排序或根据需要反转工作表标签。

安装后 Kutools for Excel,请执行以下步骤:

1. 打开要对工作表标签进行排序的工作簿,然后单击 Kutools 加 > 工作表 > 排序表,请参见屏幕截图:

2。 在 排序表 对话框中,在右侧窗格中选择所需的一种排序类型,例如 字母排序, 字母数字排序。 看截图:

3。 然后,点击 Ok 按钮,所有工作表将根据您指定的排序类型进行排序。 看截图:


 使用 VBA 代码根据标签颜色对工作表标签进行排序

我们通常在 Excel 中按字母顺序对工作表选项卡进行排序,但是您是否尝试过根据选项卡颜色对工作表选项卡进行排序? 下面的 VBA 代码可能有助于解决这个问题,请这样做:

1。 按住 ALT + F11 键打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,然后将以下宏粘贴到 模块 窗口。

VBA:根据标签颜色对所有工作表进行排序

Sub SortWorkBookByColor()
'Updateby20140624
Dim xArray1() As Long
Dim xArray2() As String
Dim n As Integer
Application.ScreenUpdating = False
If Val(Application.Version) >= 10 Then
    For i = 1 To Application.ActiveWorkbook.Worksheets.Count
        If Application.ActiveWorkbook.Worksheets(i).Visible = -1 Then
            n = n + 1
            ReDim Preserve xArray1(1 To n)
            ReDim Preserve xArray2(1 To n)
            xArray1(n) = Application.ActiveWorkbook.Worksheets(i).Tab.Color
            xArray2(n) = Application.ActiveWorkbook.Worksheets(i).Name
        End If
    Next
    For i = 1 To n
        For j = i To n
            If xArray1(j) < xArray1(i) Then
                temp = xArray2(i)
                xArray2(i) = xArray2(j)
                xArray2(j) = temp
                temp = xArray1(i)
                xArray1(i) = xArray1(j)
                xArray1(j) = temp
            End If
        Next
    Next
    For i = n To 1 Step -1
        Application.ActiveWorkbook.Worksheets(CStr(xArray2(i))).Move after:=Application.ActiveWorkbook.Worksheets(Application.ActiveWorkbook.Worksheets.Count)
    Next
End If
Application.ScreenUpdating = True
End Sub

3。 然后按 F5 执行此代码的键,具有相同标签颜色的工作表将被排序在一起。 看截图:


 根据标签颜色对工作表标签进行排序,具有惊人的功能

Kutools for Excel排序表 功能,您还可以快速轻松地按颜色对工作表选项卡进行排序。

安装后 Kutools for Excel,请这样做:

1. 点击 Kutools > 工作表 > 排序表排序表 对话框中 排序表 对话框,单击 颜色分类 右侧窗格中的按钮,请参阅屏幕截图:

2。 然后,点击 Ok 按钮,具有相同标签颜色的工作表将排列在一起,如下图所示:


  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 和保存数据; 拆分单元格内容; 合并重复的行和总和/平均值...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 收藏并快速插入公式,范围,图表和图片; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 数据透视表分组依据 周号,周几等 显示未锁定的单元格 用不同的颜色 突出显示具有公式/名称的单元格...
kte选项卡201905
  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (1)
4中的5评分 · 1评级
该评论由网站上的主持人最小化
Cho mình hỏi Cách tạo thanh công ngày và giờ đến ngày và giờ
Và xuất dữ liệu
4中的5评分
这里还没有评论
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点

关注我们

版权所有 © 2009 - extendoffice.com。 | 版权所有。 供电 ExtendOffice。 | 网站地图
Microsoft和Office徽标是Microsoft Corporation在美国和/或其他国家的商标或注册商标。
受Sectigo SSL保护