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 Textfind此信息。 这将打开文本导入向导,并允许您在Excel转换之前指定传入数据的MDY格式。

完成上述操作之一后,结果将是一个“真实的”Exceldate或date/时间,您可以按照自己的喜好进行格式化。

写一个IF() ,如果B列指定“自定义”更改格式为标准。

对于AM ,只要删除它(取而代之没有)。 对于PM将12小时添加到PM ,并将其replace为无。

对于自定义replace-使用/和附加:00来将seconds添加到自定义的。