如何让Excel识别Dukascopy日期时间格式并转换为可排序格式
解决Dukascopy CSV日期时间格式转换问题
嘿,这个需求我太熟悉了!Dukascopy导出的CSV里这个带GMT偏移的日期格式确实没法直接排序,不过用Excel或者Google Sheets的公式就能快速搞定,分两种工具给你说具体方法:
Excel 解决方案
方法1:适合Excel 365及以上版本(更简洁)
直接用TEXTBEFORE函数提取GMT前的日期时间部分,再转成可排序的日期时间值:
=--TEXTBEFORE(A1, " GMT")
- 解释:
TEXTBEFORE(A1, " GMT")会提取出01.03.2018 07:00:00.000;--是把文本格式的日期时间转换成Excel能识别的日期时间序列号(本质是数值)。 - 最后设置单元格格式:右键单元格 → 格式设置 → 选择你需要的日期时间样式(比如
yyyy-mm-dd hh:mm:ss),这样就变成可正常排序的日期时间了。
方法2:兼容所有Excel版本
如果你的Excel版本没有TEXTBEFORE,可以用LEFT和MID拆分日期和时间部分,再组合成日期时间值:
=DATEVALUE(LEFT(A1, 10)) + TIMEVALUE(MID(A1, 12, 12))
- 解释:
LEFT(A1,10)提取日期部分01.03.2018,MID(A1,12,12)提取时间部分07:00:00.000;DATEVALUE和TIMEVALUE分别把文本转成日期和时间的数值,相加后就是完整的日期时间序列号,同样设置格式即可排序。
Google Sheets 解决方案
Google Sheets的逻辑类似,先提取核心日期时间文本,再转成可排序的格式:
方法1:拆分组合法
=DATEVALUE(SUBSTITUTE(LEFT(A1, 10), ".", "/")) + TIMEVALUE(MID(A1, 12, 12))
- 解释:
SUBSTITUTE(LEFT(A1,10), ".", "/")把日期里的.换成/,确保Google Sheets能正确识别日期;后面的TIMEVALUE提取时间,相加后转成日期时间值,设置格式后就能排序。
方法2:简化提取法
因为GMT后缀固定是9个字符( GMT-0000),也可以直接去掉最后9位:
=--LEFT(A1, LEN(A1)-9)
- 解释:
LEN(A1)-9计算出要保留的字符长度,LEFT提取后用--转成日期时间数值,再设置格式即可。
关键提示
一定要把结果转成日期时间数值类型(不是纯文本),这样排序时才会按时间先后顺序排列,而不是文本的字典序。设置单元格格式的时候选择「日期时间」类的样式,不要选「文本」。
内容的提问来源于stack exchange,提问作者Greg
相关产品推荐
相关产品推荐

