Exceldate – 将不同的date格式转换成单一格式
有一个大的原始数据转储,我试图将date格式化为一致的格式。
从截图中可以看到,有两种主要格式,一种是自定义mm-dd-yyyy hh:mm AM / PM和mm / dd / yyyy hh:mm:ss。 一个是一般存储,另一个是自定义值。
我试过=left(A2,8)
,通过text()
转换和使用文本到列,但不能带来的价值一致的价值。
看来您的短date的Windows区域设置是DMY
或类似的。 您的数据转储可能是MDY
格式。 这就是为什么A2和A4被转换为“实际date”(虽然不正确),A3不是Excel,因为Excel不知道月份= 13是什么。你会注意到A2是2015年12月1日,我怀疑原始数据是2015年1月12日。
编辑 :扩大一点的解释。 当看起来像一个date或时间的东西被input到Excel单元格时,Excel会尝试将结果更改为date,根据Windows区域短date格式parsinginput。 这有时会产生不利的结果。 例如,如果您的Windows格式为MDY,但dateinput为DMY,则天数<= 12的input将被错误地转换,并且天数> 12的input将保留为文本。 这种行为不能被“closures”,并导致许多人想要input看起来像date的数据,但不是。 (例如,input1-10或12:3的比值比将被转换为date或时间)
几个选项
- 更改数据的输出以使date为
DMY
格式。 - 做一个
Text Import
,而不是OPEN
数据文件。 在更高版本的Excel中,您可以在“Data Ribbon ► Get External Data ► From Text
find此信息。 这将打开文本导入向导,并允许您在Excel转换之前指定传入数据的MDY
格式。
完成上述操作之一后,结果将是一个“真实的”Exceldate或date/时间,您可以按照自己的喜好进行格式化。
写一个IF()
,如果B列指定“自定义”更改格式为标准。
对于AM
,只要删除它(取而代之没有)。 对于PM
将12小时添加到PM
,并将其replace为无。
对于自定义replace-
使用/
和附加:00
来将seconds
添加到自定义的。