解析 Excel 中的日期/时间格式

解析 Excel 中的日期/时间格式

我有一个大型数据库,我将其从网站复制并粘贴到 Excel 2007 文档中。有一列总是给我带来麻烦。该列的格式为 dd mmm hhmm,代表日、月和 24 小时制:

18 NOV 2300

问题是,如果四位数字是 1900 或更大,Excel 会将其解释为 dd mmm yyyy,因此上述内容被视为 2300 年 11 月 18 日,而不是当前年份的 11 月 11 日晚上 11:00。然后,它将此值格式化为 dd-mmm-yy(日、月和两位数年份)以供显示。我可以进入并更改这些,但当时间为 1900 年或更大时,它总是将时间读取为年份并自动格式化。您可以将块的格式更改为文本并尝试复制和粘贴,但当您将数据库复制并粘贴到 Excel 中时,Excel 仍会自动格式化日期和时间。您可以通过简单地复制和粘贴该格式的任何内容(时间大于 1900)来测试这一点。例如 2030 年 2 月 10 日。我需要 Excel 停止以这种方式自动格式化。

我实际上不需要18 NOV 2300翻译为今年 11 月 11 日晚上 11 点;我只需要它显示作为18 NOV 2300

答案1

您是否愿意使用“辅助列”?如果您要将“dd mmm hhmm”数据粘贴到列中 P(假设从开始P2向下),请输入

=TEXT(P2,"dd mmm yyyy")

进入单元格Q2并向下拖动/填充。这基本上反转了 Excel 对输入字符串的解释,重新构造被解析为日、月和年的内容。未被解释为日期的字符串(因为四位数字小于 1900)将不加改变地直接传递。

这将导致 Column 中的空白单元格 P被翻译成00 Jan 1900。如果您不喜欢这样,请使用

=IF(P2<>"", TEXT(P2,"dd mmm yyyy"), "")

反而。

这将以典型的首字母大写来表示月份(Mmm,例如“Nov”)。如果您希望全部大写,请使用

=IF(P2<>"", UPPER(TEXT(P2,"dd mmm yyyy")), "")

答案2

您无法直接复制/粘贴到 Excel 中。这样做允许 Excel 按照其认为合适的方式格式化结果。相反,可以粘贴到类似记事本并将结果保存为文本文件。您可以使用 Excel 的导入向导读取文本文件。您可以准确地告诉向导应如何解释该字段。

答案3

您应该能够通过仅粘贴值而不粘贴格式信息来覆盖 Excel 试图“智能”处理日期的做法。或者,如果这不起作用,则使用源格式进行粘贴。

答案4

由于您不需要(好吧,七年前不需要)输入可用于计算的实际时间,因此进行此类输入的最简单方法就是先输入撇号,然后输入您想要输入的文字。所以...

'18 NOV 2300

无需公式,也无需担心 Excel 35 年来如何处理日期和其他数字条目。只需从撇号开始,然后输入您本来要输入的内容即可。

相关内容