Excel处理CSV特殊日期格式:移除冗余内容实现按日期排序
我来帮你搞定这个Excel日期识别的问题!你遇到的这种带星期、UTC的格式确实挺头疼,下面给你几个好用的解决方法,不管是用公式还是批量替换都能搞定:
方法一:用公式精准提取日期(适合单单元格或小批量)
分两种Excel版本给你不同的公式方案:
适合Excel 365/2021的简洁公式
直接用新版函数组合,一步到位提取有效日期:
=TEXTAFTER(TEXTBEFORE(B2," ",-2)," ")
简单解释:TEXTBEFORE(B2," ",-2)会定位到倒数第二个空格,提取前面的内容(也就是Sun 06 Aug 2017),再用TEXTAFTER去掉最前面的星期部分,最终得到06 Aug 2017,Excel能直接识别成日期。
兼容旧版Excel的公式
如果你的Excel没有TEXTAFTER/TEXTBEFORE,可以用MID+FIND组合:
=LEFT(MID(B2,5,LEN(B2)-4),FIND(":",MID(B2,5,LEN(B2)-4))-2)
解释:先通过MID(B2,5,LEN(B2)-4)去掉开头的星期(比如Sun ),得到06 Aug 2017 14:45 UTC;再找到时间里的冒号位置,取冒号前面的内容(减2是去掉冒号前的空格),最终得到纯日期部分。
方法二:批量查找替换(无需公式,适合大量数据)
这个方法最快,不用写公式,直接批量处理4000+行数据:
- 去掉开头的星期:
- 按
Ctrl+H打开查找替换窗口 - 查找内容填
???(三个问号加空格,问号是通配符,刚好匹配3个字母的星期+空格) - 替换内容留空,点击「全部替换」,所有开头的
Sun、Mon都会被删掉
- 按
- 去掉结尾的时间和UTC:
- 继续用查找替换,查找内容填
*(空格加星号,星号匹配空格后的所有内容) - 替换内容留空,点击「全部替换」,日期后面的
14:45 UTC这类内容就都没了
- 继续用查找替换,查找内容填
- 最后选中处理后的单元格,右键→设置单元格格式→选择合适的日期格式,Excel就能正确识别并排序了!
方法三:Power Query批量转换(适合超大文件,4000+行更高效)
如果数据量很大,用Power Query处理更省心,还能保留原始数据:
- 打开Excel,点击「数据」选项卡→「从文本/CSV」,导入你的CSV文件
- 在Power Query编辑器中,选中日期列:
- 点击「转换」选项卡→「拆分列」→「按分隔符」,选择空格作为分隔符,拆分为多列
- 此时会得到5列:星期、日、月、年、时间UTC,删掉星期和时间UTC列
- 选中日、月、年三列,点击「转换」→「合并列」,用空格作为分隔符合并成新列
- 选中合并后的列,点击「转换」→「数据类型」→「日期」,系统会自动把
06 Aug 2017转换成Excel可识别的日期格式
- 点击「关闭并上载」,把处理好的数据导入Excel,直接排序即可!
最后提醒:不管用哪种方法,处理完后最好把公式结果复制,右键→粘贴为值,避免排序时出现异常。
内容的提问来源于stack exchange,提问作者Ruairi McNicholas




