【发布时间】:2017-06-28 03:46:24
【问题描述】:
我有一个如下所示的文本格式日期:
June 12th 2017, 9:07am PDT
如何将其转换为日期格式(经典方法 Format Cells 和 DateValue() 不起作用)?
谢谢。
【问题讨论】:
我有一个如下所示的文本格式日期:
June 12th 2017, 9:07am PDT
如何将其转换为日期格式(经典方法 Format Cells 和 DateValue() 不起作用)?
谢谢。
【问题讨论】:
我的解决方案使用一个帮助表,列出所有 12 个月及其序列号 A1:B12
January 1
February 2
March 3
April 4
May 5
June 6
July 7
August 8
September 9
October 10
November 11
December 12
假设值在D10
获取单独的元素
月份:
=VLOOKUP(LEFT(D10,FIND(" ",D10)-1),A1:B12,2,FALSE)
日期:
=IFERROR(VALUE(RIGHT(LEFT(D10,FIND(" ",D10)+2),2)),RIGHT(LEFT(D10,FIND(" ",D10)+1),1))
年份:
=RIGHT(LEFT(D10,FIND(",",D10)-1),4)
小时:
=IF(RIGHT(LEFT(D10,FIND(":",D10)+4),2)="am",RIGHT(LEFT(D10,FIND(":",D10)-1),2),RIGHT(LEFT(D10,FIND(":",D10)-1),2)+12)
分钟:
=RIGHT(LEFT(D10,FIND(":",D10)+2),2)
所有这些都结合在 DATE 和 TIME 函数中,得到一个公式:
=DATE(RIGHT(LEFT(D10,FIND(",",D10)-1),4),VLOOKUP(LEFT(D10,FIND(" ",D10)-1),A1:B12,2,FALSE),IFERROR(VALUE(RIGHT(LEFT(D10,FIND(" ",D10)+2),2)),RIGHT(LEFT(D10,FIND(" ",D10)+1),1)))+TIME(IF(RIGHT(LEFT(D10,FIND(":",D10)+4),2)="am",RIGHT(LEFT(D10,FIND(":",D10)-1),2),RIGHT(LEFT(D10,FIND(":",D10)-1),2)+12),RIGHT(LEFT(D10,FIND(":",D10)+2),2),0)
然后将单元格的格式改为:
mmmm dd yyyy hh:mm AM/PM "PDT"
这将给出:
June 12 2017 09:07 AM PDT
要添加逗号(,),请使用自定义格式:
mmmm dd yyyy"," hh:mm AM/PM "PDT"
【讨论】:
8t 作为一天。我更新了公式来检查 1 位数的天数。 @麦克风
+TIME 之前错过了一个括号。立即检查。