【发布时间】:2015-11-09 16:06:43
【问题描述】:
我正在尝试确定这是 Excel 错误还是格式问题。所以我有一个日期和时间格式为m/d/yyy h:m AM/PM(即10/21/2015 2:21:00 PM)的列,我试图将它分成两个单独的列:一个是日期,一个是时间。我首先尝试使用固定宽度,但最终使用分隔的,这样我就可以将它准确地分割到我想要的位置。
由于某种原因,当它将两者分开时,时间的实际值会发生变化。我将得到一列的日期和时间为凌晨 12 点 (10/21/2015 12:00 AM) 和一列的初始时间为负 12 小时 (2:21:00 AM).... 试图找出为什么仍然存在时间值在日期列中以及时间值更改的原因。理想情况下,我希望有一个带有10/21/2015 的专栏和另一个带有2:21:00 PM 的专栏。
我已尝试更改初始日期/时间组合等的格式,并且在拆分时它会不断从初始时间减去 12 小时。
有没有人经历或听说过类似的问题?
【问题讨论】:
-
发生这种情况是因为您看到的大文本字符串实际上被 Excel 理解为数字。 Excel 将日期作为整数(等于 1900 年 1 月 1 日之后的每一天),并将时间作为小数。当您拆分文本时,它现在会在一侧看到“日期整数”,而在另一侧看到“时间小数”。当它格式化“时间小数”时,它仍然认为它是一个日期时间组合,表示 1900 年 1 月 1 日。
-
听起来它可能无法识别 AM / PM(至少以您的示例为例)。如果时间最初是凌晨 2:21:00。它仍然减去12小时吗?还是只在下午的时候?
-
此外,作为分隔符的空间分割是从时间中剥离 AM/PM。任何有 PM 的东西都会变成 AM,因为没有什么是 AM。
-
您是否考虑过进入计算机的系统区域设置并永久更改为
mm/dd/yyyy短日期,以便您可以使用固定宽度而不会出错? -
好的,谢谢,我让它工作了,但我认为必须有更好的方法来做到这一点。我将初始日期/时间列格式化为数字并得到值 42298.597917。然后我使用固定宽度在小数点之前将其拆分,导致一列(日期)为 42298,另一列(时间)为 0.59791666。然后我更改了日期列的格式并获得了正确的日期(2015 年 10 月 10 日),并且时间列记录了正确的时间(下午 2:21:00)。目前可以工作,但可能必须使用 VBA 来自动化该过程......