EP06. “Sort by Date 按日期排序”
🔒 登录后可标记已读- 按日期排序为什么有时候会排出一堆乱序?多半是那些日期其实是「文本」,不是 Excel 认得的真日期
- 真正的日期在单元格里靠右对齐,文本日期靠左对齐——这个视觉差异就是排查的第一步
- 先把文本日期转成真日期,再讲基本排序、只按月份排序,以及按生日(忽略年份)排序这三种场景
- 学完能处理各种日期相关的排序需求,不再被「假日期」坑
重点内容
适用版本
桌面版通用(Excel 365 / 2021 / 2019 等)。
第一步:把文本日期转成真正的日期
真正的日期在单元格里是靠右对齐的,文本形式的日期是靠左对齐——排序前先用这个特征判断日期是不是「假日期」。
三种转换方法怎么选
| 方法 | 适合场景 | 备注 |
|---|---|---|
| 直接套用日期格式 | 数据本身格式还算标准,只是没被识别成日期 | 最快,先试这个 |
| 查找和替换 | 格式规整但 Excel 死活不认 | 用「/换/」触发 Excel 重新判断格式 |
| Text to Columns | 日期顺序(MDY/DMY)跟系统预期不一致,或格式很不规则 | 能手动指定日期顺序,最可靠 |
方法一:直接套用日期格式
- 选中文本日期所在的单元格
- Home → Number(数字)组的下拉列表,选择 Short Date
方法二:查找和替换
- 选中文本日期
- 按
Ctrl + H打开查找和替换 - 「查找内容」输入斜杠
/,「替换为」也输入斜杠/,点击 Replace All(全部替换)
(这一步看似没改变任何字符,但会触发 Excel 重新判断这些内容是不是合法日期格式,从而把文本日期转成真日期)
方法三:文本分列(Text to Columns)
- 选中日期所在列
- Data → Text to Columns
- 选择 Delimited,一路 Next
- 在最后一步的「列数据格式」选择 Date,并指定日期顺序(如 MDY,月/日/年)
- 点击 Finish
[截图:Text to Columns 向导 - 选择日期格式]
第二步:基本按日期排序
- 选中日期列中的任意单元格
- Data → Sort & Filter → 点击 AZ(升序,从早到晚)或 ZA(降序,从晚到早)
按月份排序(忽略年份,只看月)
- 新增一列,标题命名为 Month
- 输入公式
=MONTH(B2),向下拖动填充手柄 - 点击 Month 这一列的任意单元格,Data → Sort & Filter → AZ
📌 这个方法只按月份(1~12)分组,不考虑年份,也不考虑日——如果需要精确到「几号」的顺序,要另外处理。
按生日排序(忽略年份,按月日顺序)
- 新增一列,标题命名为 Birthday Key
- 输入公式
=TEXT(B2,"mm.dd"),把日期格式化成「月.日」的文本 - 点击该列任意单元格,Data → Sort & Filter → AZ
结果:生日会按一年中的先后顺序(1 月到 12 月)排列,忽略了出生年份,适合整理员工/学生生日清单。
函数速查
| 函数 | 语法 | 用途 | 例子 |
|---|---|---|---|
| MONTH | =MONTH(serial_number) | 提取日期的月份 | =MONTH(B2) → 5 |
| TEXT | =TEXT(value, format_text) | 按指定格式把数值转成文本 | =TEXT(B2,"mm.dd") → "05.20" |
快捷键速查
| 操作 | Windows | Mac |
|---|---|---|
| 查找和替换 | Ctrl + H | Cmd + H |
学完你会
- ✅ 判断表格里的日期是真日期还是文本假日期
- ✅ 用三种方法之一把文本日期转成真正的日期值
- ✅ 用辅助列做到「只按月份」或「按生日忽略年份」的日期排序
常见错误
- 没有先检查日期是文本还是真日期就直接排序,导致排序结果按字符顺序而不是真正的时间先后
- 用 Text to Columns 转换时,日期顺序(MDY / DMY / YMD)选错,导致月和日被互换
- 按生日排序时直接用原始日期排序,年份不同的生日会被拆散、无法按「一年中的顺序」聚在一起,忘了要用 TEXT 公式转成忽略年份的格式
Sources
Blog / Website: