将 Excel 文本字符串转换为时间

将 Excel 文本字符串转换为时间

我正在尝试从存储了进入时间 / 结束时间作为一个文本字符串在24小时内。

例如下午 3 点,输入为 1500(无冒号)

有没有一种简单的方法可以将这些值转换为带有 AM/PM 的 12 小时时间?

我有超过 3000 个条目 - 而且我几乎要手动编辑了,所以 任何建议都值得赞赏。

答案1

假设值在单元格 A1 中,使用以下公式:

=TIMEVALUE(LEFT(A1,LEN(A1)-2)&":"&RIGHT(A1,2))

实际情况是,它采用的值假设为小时的 1 位或 2 位数字,分钟的 2 位数字。例如,1500 = 下午 3:00,900 = 上午 9:00。您可能需要将单元格格式化为时间而不是数字。

如果您有早于凌晨 1:00 的值并且您的数据没有前导零,那么您将需要这个更复杂的公式:

=TIMEVALUE(IF(LEN(A1)>2,LEFT(A1,LEN(A1)-2),"0")&":"&RIGHT(A1,2))

答案2

在 Excel 2003 中,这些公式运行正常,直到遇到没有小时数字的时间(午夜后的第一个小时),然后出现错误#VALUE!。我添加了一个 IF 语句来处理第一个小时,其中只有单数或双数分钟:-

=TIMEVALUE(IF(LEN(A1)<=2,"0:"&RIGHT(A1,2),(LEFT(A1,LEN(A1)-2)&":"&RIGHT(A1,2))))

答案3

这个公式根据 Dave 和 Tracy 的公式修改而来,将输出您想要的文本字符串,并且不需要您设置单元格格式:

=TEXT(LEFT(A1,LEN(A1)-2) &":"& RIGHT(A1,2), "h:mm AM/PM")

如果您只想要小时,则将 h:mm 更改为 h。

答案4

答案其实很简单。我有同样的问题。

00\:00在输入单元格上使用自定义格式。

把那个细胞变成实际时间用于计算
=TIME(TRUNC(A1/100),MOD(A1,100),0)

对我来说非常完美;)

来源:http://www.pcmag.com/article2/0,2817,2316755,00.asp

相关内容