如何在 Excel 中按日期排序

2025年3月17日 | 阅读 8 分钟

Excel 内置的排序选项是强大且有用的工具,但它们在排序日期时并不总是能正确工作。在 Excel 中,我们必须将日期设置为统一的格式才能按

日期排序。您还可以使用 Excel 的排序选项来重新排列整个表格,而不仅仅是单个列。

按升序或降序排序日期

Microsoft Excel 中按日期对数据进行排序的最简单方法是按时间顺序或反时间顺序进行排序。这会根据您的偏好,将日期从最新的开始排列。要对日期进行排序,请按照以下步骤操作:

步骤 1:转到“数据”菜单选项卡,然后在“排序和筛选”类别下。

步骤 2:选择“排序”选项。

How to Sort by Date in Excel

还有另一种方法可以在标题中应用筛选器。然后,从“日期”列的下拉菜单中,选择“从新到旧”或“从旧到新”来对 Excel 中的日期进行排序。

步骤 4:如果要从“从旧到新”排序日期,请选择“从旧到新”按钮。

步骤 5:会出现“排序警告”对话框。保留默认的“扩展选定区域”选项,然后单击“排序”按钮。

How to Sort by Date in Excel

结果是,这将把旧日期放在前面,并将最新的日期推到底部。

步骤 6:如果要从“从新到旧”排序日期,请执行此操作。

How to Sort by Date in Excel

结果是,这将把最新的日期带到顶部。并将旧日期推到底部。

如何在 Excel 中按月份排序

假设您想按月份对日期进行排序,忽略年份,例如对同事或亲戚的周年纪念日进行分组。在这种情况下,默认的 Excel 排序功能将无法工作,因为它始终会考虑年份,即使您的单元格已格式化为仅显示月份或月份和日期。

解决方案是添加一个辅助列,提取月份编号,然后按该列排序。要从日期中获取月份,请使用MONTH函数。

在下面的示例中,我们使用以下公式从 B2 中的日期提取月份编号:


How to Sort by Date in Excel

注意:如果结果显示为日期而不是数字,请将公式单元格的格式设置为“常规”。

步骤 1:现在,按“月份”列对表格进行排序。

步骤 2:选择月份编号(C2:C8),单击“排序和筛选”,选择“升序”,然后在 Excel 询问时选择扩展选定区域。如果一切正确,您将看到以下结果:

How to Sort by Date in Excel

数据现已按月份排序,忽略了年份和月份内的日期。

如何按月/日对生日进行排序

在安排生日日历的日期时,最佳解决方案是按月/日对日期进行排序。因此,您需要一个能够从出生日期提取月份和日期的公式。

在这种情况下,请使用 Excel 的TEXT函数,将日期转换为指定格式的文本字符串。对于我们的函数,“mmdd”或“mm.dd”格式代码都可以。

在下面的示例中,我们使用以下公式从 B2 中的日期提取月份和日期:


How to Sort by Date in Excel

接下来,将“月份和日期”列从大到小排序,您将看到数据按每个月的日期顺序排列。

How to Sort by Date in Excel

您也可以使用下面的DATE公式获得相同的结果:

此公式通过提取 B2 中实际日期的月份和日期,并将整个年份替换为虚构的年份(在此示例中为 2000 年),来生成日期列表。

这样做的目的是让所有日期具有相同的年份,然后按时间顺序对日期列表进行排序。由于年份相同,日期将按月份和日期排序,这与上述结果完全相同。

如何按星期几排序

要按星期几对数据进行排序,您需要一个辅助列。在这种情况下,请使用WEEKDAY公式,该公式返回一个对应于星期几的数字,然后按辅助列排序。从星期日(1)到星期六(7)的一周使用以下公式:

如果您的星期从星期一(1)到星期日(7)开始,则可以使用以下公式:


How to Sort by Date in Excel

如果星期几的名称以文本形式输入,而不是作为日期,则使用自定义排序功能。

如何按月份/星期名称排序

如果您有一个月份名称列表,它们是以文本形式输入的,而不是以仅显示月份的日期格式。应用 Excel 的升序排序可能会有问题,因为它会按字母顺序排列月份名称,而不是按一月到十二月的顺序排序。在这种情况下,您需要使用自定义排序功能并按照以下步骤操作:

步骤 1:选择要按月份名称排序的记录。

How to Sort by Date in Excel

步骤 2:单击“数据”选项卡,转到“排序和筛选”组,然后单击“排序”按钮。

步骤 3:在“排序”对话框中,执行以下操作:

  • 首先,选择“继续当前选定区域”,然后单击“排序”。
    How to Sort by Date in Excel
  • 在“”下,选择包含月份名称的列的名称。
  • 在“排序依据”下,选择“单元格值”。
  • 在“排序顺序”下,选择“自定义列表”。
How to Sort by Date in Excel

步骤 4:再次显示“自定义列表”对话框,您可以在其中选择完整的月份名称(*一月、二月、三月*……)或缩写名称(*一月、二月、三月*……),具体取决于您的工作表中月份的列出方式。

How to Sort by Date in Excel

步骤 5:单击“确定”两次以关闭两个对话框。

How to Sort by Date in Excel

结果是,数据已按月份名称按时间顺序排序,而不是按字母顺序排序。

同样,要按星期几的名称排序,请在“自定义列表”对话框中选择完整的名称(*星期日、星期一、星期二*……)或缩写名称(*周日、周一、周二*……)。

如何自动按日期排序

在 Excel 中,“排序”功能不是动态的。这意味着您需要每次更改数据和添加新信息时都重新排序数据。有两种方法可以实现此目的,即公式

1. 使用宏自动排序日期

此宏将在工作表中的任何位置发生更改时执行。

假定您的数据在 A 列到 C 列,并且您要排序的日期在 C 列。还假定第 1 行包含标题。如果您的记录在不同的列中,请进行以下调整:

  • 将 A1 引用更改为目标范围(包括标题)的左上角单元格。
  • 将 C2 引用更改为包含日期的最顶部的单元格。

如果您处理包含大量信息的大型工作表,那么在每次更改工作表时都重新排序可能会很麻烦。

在这种情况下,最好将宏的触发限制在特定范围内的更改。以下 VBA 代码仅在 C 列(包含日期的列)发生更改时对数据进行排序。

注意:这些宏可用于自动排序任何数据类型,而不仅仅是日期。我们的示例代码按升序排序。如果要按降序排序,请将 Order1:=xlAscending 更改为 Order1:=xlDescending。

2. 使用公式自动排序日期

假设您有一个日期列表,并希望它们在单独的列中自动按时间顺序排列,与原始列表并排。您可以使用以下数组公式来完成此操作:

A2:A10 是原始(未排序)日期,包括一些空白单元格以供可能的新条目。

在原始日期列旁边的空白单元格中输入公式,然后同时按下 Ctrl + Shift + Enter 键来完成它。然后,将公式拖动到其余单元格。

How to Sort by Date in Excel

要自动排序新添加的日期,请确保在引用的范围内包含足够多的空白单元格。

多级数据排序

当您拥有大型数据集时,将使用多级数据排序。这意味着您可以根据一列中的值对数据集进行排序,然后再根据另一列中的值进行排序。

例如,假设您有如下所示的数据集,并希望根据国家/地区和销售额等两个条件对该数据进行排序。

How to Sort by Date in Excel

在上例中,我们首先按国家/地区对数据进行了排序,然后在每个国家/地区内部,再按销售额对数据进行了进一步排序。

这可以快速查看每个国家/地区的销售表现如何,或者哪些销售表现不佳。以下是按多列排序数据的步骤:

步骤 1:选择要排序的整个数据集。

步骤 2:然后,单击“数据”选项卡。

步骤 3:单击“排序”图标。这将打开“排序”对话框。

How to Sort by Date in Excel

步骤 4:在“排序”对话框中,确保选中了“我的数据包含标题”。如果您的数据不包含标题,则可以取消选中此项。

步骤 5:在“排序”对话框中,进行以下选择:

  • 在“”下,选择包含国家/地区名称的列的名称。
  • 在“排序依据”下,选择“单元格值”。
  • 在“排序顺序”下,选择“A 到 Z”。
How to Sort by Date in Excel

步骤 6:单击“添加级别”。这将添加另一级别的排序选项。

步骤 7:在第二个排序级别中,进行以下选择:

  • 在“”下,选择包含销售额的列的名称。
  • 在“排序依据”下,选择“”。
  • 在“排序顺序”下,选择“从大到小”。
How to Sort by Date in Excel

步骤 8:单击“确定”按钮。

How to Sort by Date in Excel

此排序结果是一个按国家/地区 A 到 Z 顺序排序,并按销售额从大到小顺序排序的数据集,该数据集基于国家/地区和销售额条件。

注意:“排序”对话框有一个“复制级别”功能。这可以快速复制选定的排序级别,然后您可以轻松修改它。这是一个很实用的功能,在需要按多列排序时可以节省您的时间。