有时您可能需要根据特定列中表示的月份对信息列表进行排序。例如,您可能有一个人及其生日的列表,并且想要按生日月份对列表进行排序,以便知道谁的生日在特定月份内发生。

最简单的方法是在表中添加一个新列。该列将被命名为描述性名称,例如“出生月份”或简称为“月份”。例如,假设您在B列中有人们的生日,则可以在C列中添加新列。在此列中,您可以使用MONTH函数,如下所示:

=MONTH(B3)

该特定公式将在C3单元格中使用,但在C列的每个单元格中也会使用类似的公式。结果是C列将包含1到12之间的数字,代表人们的出生月份。现在,您可以基于列C的内容对列表进行排序,结果列表将按月排序。

这种方法效果很好,但是您可能无法在工作表中添加另一列。在这种情况下,您可以按照以下步骤按月排序:

。选择B列中的单元格(假设B列包含生日)。

。按Ctrl + Shift + F。 Excel将显示“设置单元格格式”对话框。

。确保显示“数字”选项卡。

。在类别列表中,选择自定义。 (请参见图1。)

。在“类型”框中,为格式输入四个小写的Ms(mmmm)。

。单击确定。 B列中的单元格现在应仅显示列表中人员的出生月份。 (不用担心;底层的生日仍然存在。)

。选择整个列表。

。显示功能区的“数据”选项卡。

。在“排序和筛选”组中单击“排序”。 Excel将显示“排序”对话框。 (请参见图2。)

。使用对话框中的控件来指定您要按列B的内容进行排序。 。使用订单下拉列表选择自定义列表。 Excel将显示“自定义列表”对话框。

。从可用的自定义列表中,选择列出月份的列表,然后单击“确定”。

。单击“确定”关闭“排序”对话框,然后对列表进行实际排序。

您可能想知道为什么需要重新格式化包含生日的单元格的显示(步骤1至6)。原因是,当您最终对列表进行排序(第7步至第13步)时,如果仅显示原始的完整日期,则Excel将有效地按时间顺序而不是按月对列表进行排序。

还有另一种方法可以解决此问题。这实际上涉及将日期转换为文本(而不是内部序列号),如下所示:

。选择包含日期的单元格。

。按Ctrl + Shift + F。 Excel将显示“设置单元格格式”对话框。

。确保已选择“号码”标签。

。在类别列表中,选择日期。

。在“类型”列表中,选择“ 2012年3月14日”。 。单击确定。现在,您的单元格应格式化为以长月份开头的较长日期。

。按Ctrl + C。这会将单元格复制到剪贴板。

。打开记事本。

。按Ctrl + V。现在,该信息将粘贴到记事本中,并且仍然应该是长日期。

。选择刚粘贴到记事本中的信息。

。按Ctrl + C。这会将信息复制到剪贴板。

。切换回Excel。

。按Ctrl + Shift + F。 Excel将显示“设置单元格格式”对话框。

。确保已选择“号码”标签。

。在类别列表中,选择文本。

。单击确定。

。按Ctrl + V。

现在,您的日期将作为真实文本条目而不是日期粘贴到Excel中。

这使您可以轻松地根据日期中的月份对信息进行排序。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(9728)适用于Office 365中的Microsoft Excel 2007、2010、2013、2016、2019和Excel。您可以在此处为Excel的较旧菜单界面找到此技巧的版本:

链接:/ excel-Sorting_Dates_by_Month [按月排序日期]。