【问题标题】:Excel - Convert Date & Time to Date FormatExcel - 将日期和时间转换为日期格式
【发布时间】:2015-10-25 09:16:33
【问题描述】:

我正在处理包含事件日期/时间戳的数据列。打印出来的表格是美式格式,如下:

12/25/2014 11:00 AM

单元格格式为“常规”。我希望将该列转换为日期/时间字段,以便于过滤和搜索。到目前为止,我能够转换文本的唯一方法是使用“文本到列”并导入由空格分隔的列,但这并没有得到我想要的,因为它导入了完美的日期,但是时间仍然是文本并且在另一列中,这并不漂亮。

有没有更简单的方法?提前致谢

【问题讨论】:

  • 你的windows区域设置是什么?而且,数据是文本字符串吗?例如,如果你执行ISTEXT(cell_ref),结果是什么?

标签: excel date


【解决方案1】:

由于这些值显然是文本字符串,因此您无法通过格式化来更改这些值。 Excel 将日期(和时间)存储为自 1900 年 1 月 1 日以来的天数和一天的分数。我相信您有四个非 VBA 选项:

  • 在输入工作表之前更改数据,使其格式与 Windows 区域设置短日期相同(可能是 DMY?)

  • 更改您的 Windows 区域设置短日期格式以匹配您正在导入的数据。

  • 像以前一样使用 Text to Columns 拆分数据,然后将两个字段结合起来。例如

    • A1 中的原始数据
    • 在 A1:B1 中拆分数据
    • 组合 -- C1: =A1+B1
    • 复制C1; PasteValues (C1),然后删除 A1:B1
  • 使用公式来分隔不同的段。以下假设您的 Windows 区域设置 AM/PM 指定确实是 AM/PM,否则公式也必须考虑这一点。此外,如果格式为mm/dd/yyyy hh:mm AM/PM,则可以简化公式。下面的公式假定格式为 m/d/yyyy h:mm AM/PM 并且 AM/PM 在您的语言环境中有效。

=DATE(
MID(A1,FIND("/",A1,4)+1,4),
LEFT(A1,FIND("/",A1)-1),
MID(A1,FIND("/",A1)+1,FIND("/",A1,4)-FIND("/",A1)-1)
)
+TRIM(MID(A1,FIND(":",A1)-2,9))

【讨论】:

  • 谢谢罗恩。是的,确认它们是文本字符串,它们由系统导出到 excel 中,所以我无法控制接收它们的格式。但是,按照您的建议拆分和组合是一个很好的解决方法,我会打包在一个不错的宏中,然后继续。此外,公式选项也同样有效,感谢您的详细回复。
【解决方案2】:

您应该尝试自定义日期和时间格式。

  1. 如果使用 Google 电子表格,请参阅此link
  2. 如果使用 excel,请参阅link

【讨论】:

  • 感谢 Irum - 我试过了,但并不高兴 - 更改日期、数字、自定义格式等似乎不会对数据进行任何更改。仅当我首先使用文本到列并丢失时间戳时。
猜你喜欢
  • 2017-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-26
  • 2013-03-24
  • 1970-01-01
  • 1970-01-01
  • 2019-09-03
相关资源
最近更新 更多