在Excel问题中将文本转换为日期

时间:2018-07-19 08:04:17

标签: excel excel-2010

所以我打开excel,在G2中输入以下内容:UTC Feb / 12/2016 01:09:28 PM

然后在其他任何单元格中尝试以下公式:

=IFERROR(DATEVALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LEFT(G2,11),"Dec",12),"Nov",11),"Oct",10),"Sep",9),"Aug",8),"Jul",7),"Jun",6),"May",5),"Apr",4),"Mar",3),"Feb",2),"Jan",1))+TIMEVALUE(MID(G2,13,11)),"Error")

我正试图让它显示为2016年2月12日13:09

但是它给了我我的错误。 iv尝试了一切,只是没有用??

非常感谢你们

1 个答案:

答案 0 :(得分:-1)

简短答案:

使用以下公式:

=DATE(MID(A1,8,4),MONTH(1&LEFT(A1,3)),MID(A1,5,2)) + IF(MID(A1, 22,2) = "PM", TIME(MID(A1, 13, 2), MID(A1, 16, 2), MID(A1, 19, 2)) + TIME(12, 0, 0), TIME(MID(A1, 13, 2), MID(A1, 16, 2), MID(A1, 19, 2)))


长答案:

虽然没有必要,但最好将时间和日期分开 用于数据操作。

我建议您使用隐藏的列,这样可以使您的约会变得井井有条,并且整齐地分开,但此外,这也将帮助我解释答案,而不仅仅是粘贴一个庞大的公式:

  

假设您的文本信息始终具有相同的格式 "Mon"/dd/yyyy hh:mm:ss AM/PM UTC

在单元格B1中,我们将粘贴日期

=DATE(MID(A1,8,4),MONTH(1&LEFT(A1,3)),MID(A1,5,2))

很容易解释,我们将提取日期格式的各个部分并将其应用于它们。唯一的技巧是使用MONTH()函数将月份字符串转换为实际月份格式。


现在,要花些时间了

让我们尝试在C1中对其进行解析:

首先,我们需要实现一个IF函数,它将AM / PM格式转换为24h格式,然后我们将使用字符串函数,就像上面的日期一样,将数据提取到我们的{{ 1}}功能。

TIME()

最后但并非最不重要的一点,我们将在D列中粘贴结果。 首先,请确保您的格式已正确设置为预期的输出:

enter image description here

,然后我们将两个数据字段简单地添加在一起:

=IF(MID(A1, 22,2) = "PM",  TIME(MID(A1, 13, 2), MID(A1, 16, 2), MID(A1, 19, 2)) + TIME(12, 0, 0), TIME(MID(A1, 13, 2), MID(A1, 16, 2), MID(A1, 19, 2)))

产生预期的结果:

enter image description here