Excel将文本转换为时间戳
我在单元格A1中具有以下文本时间戳。 22-OCT-13 03.40.00.000000000 AM
。 在B1中,我有以下公式: =TIME(HOUR(MID(A1,11,2)),MIN(MID(A1,14,2)),SECOND(MID(A1,17,2)))
。
它产生12:40 AM。 小时函数返回零,但分钟函数正常工作。 我无法弄清楚这是怎么回事。
MIN
是“最小”公式,它从值列表中返回最小值,而不是MINUTE
公式。
我认为你不熟悉TIME()
, HOUR()
或MINUTE()
。
TIME()
取“正常”值并将其转换为时间值。 如果你有TIME(H, M, S)
, H
是小时数(不是时间戳), M
是分钟数(不是时间戳), S
是秒数(再次,不是时间戳)。
HOUR()
需要一个时间值并从中提取小时。
MINUTE()
和SECOND()
类似于HOUR()
。 你可能想要的是:
=TIME(MID(A1,11,2),MID(A1,14,2),MID(A1,17,2))
当你使用MID()
你得到一个数字,而不是一个时间戳。 所以, HOUR
取这个数字,将其解释为一个时间戳并返回小时。 在你的例子中,第一个MID
返回03
。 在excel中,如果将其转换为时间戳,则会得到03/01/1900 00:00(以dd / mm / yyyy hh:mm格式),因此小时为0
。
编辑:
顺便说一句,如果你想保持date和时间,你可以使用这个公式(不要忘记最后的AM / PM:
=SUBSTITUTE(SUBSTITUTE(A1,".",":"),":",".",3)*1
原来的date/时间几乎可以被Excel所理解。 全部replace.
用:
然后replace第三个(last) :
by .
并乘以1告诉Excel将其转换为数字。 只要按照时间格式化结果,应该这样做。