描述
手上有一份成员的出生年月日数据,现需要根据年月日提取月日,并按月日进行排序。
1 方法一:使用公式提取月日后排序
1.1 步骤1:提取月日
假设生日日期在C列(如C2单元格开始):
1.1.1 提取月日到新列
在D2单元格输入公式:=TEXT(C2,"mm-dd") 或 =TEXT(C2,"mm月dd日")
c
=TEXT(C2,"mm-dd")
=TEXT(C2,"mm月dd日")
或者用:=MONTH(C2)&"-"&DAY(C2)
cpp
=MONTH(C2)&"-"&DAY(C2)
下拉填充整个B列

1.1.2 创建排序辅助列:
在E2单元格输入:=DATE(2000, MONTH(C2), DAY(C2))
cpp
=DATE(2000, MONTH(C2), DAY(C2))
这会把月日转换为同一个年份(如2000年)的完整日期,方便排序
下拉填充整个C列

1.2 步骤2:按月日排序
- 选择数据区域(包括原始数据和其他列)
- 点击「数据」→「排序」
- 在排序对话框中:
- 主要关键字选择E列(辅助列)
- 排序依据选择「数值」
- 次序选择「升序」(1月1日到12月31日)
- 点击「确定」

2 方法二:使用分列功能(如果日期是文本格式)
如果生日数据是文本格式如"1990-05-20"或"1990年5月20日":
- 提取月日:
- 在D2输入:=MID(C2, 6, 5)(针对"1990-05-20"格式)
cpp
=MID(C2, 6, 5)
- 或:=TEXT(--A2, "mm-dd")(将文本转为日期再提取)
cpp
=TEXT(--A2, "mm-dd")
- 再按方法一的步骤排序
3 方法三:一键排序(最简单)
如果只需要排序,不需要显示月日:
- 直接创建排序辅助列:
- 在E2输入:=MONTH(E2)*100 + DAY(E2)
cpp
=MONTH(C2)*100 + DAY(C2)
- 这将5月20日转为520,12月5日转为1205
- 按此列升序排序即可
注意:
- 处理闰年2月29日:如果使用DATE函数,建议用2000年(闰年)作为基准年
- 排序后:可以隐藏辅助列,或复制排序结果到新工作表
- 如果日期格式混乱:先用=DATEVALUE(C2)统一转换为标准日期格式
