Excel中将含月份名的日期字符串转为日期类型,公式是否正确?
你的Excel日期转换公式问题
首先,你给出的公式存在语法错误和参数使用错误,具体问题如下:
- TEXT函数的格式字符串
"MMM D, YYYY缺少闭合的双引号,DATEVALUE函数也没有对应的闭合括号 - TIMEVALUE函数仅需一个文本参数,你错误地传入了第二个参数
"H:M AM/PM"
正确的公式写法
假设目标单元格是A1,你可以直接使用以下公式:
=DATEVALUE(A1) + TIMEVALUE(A1)
DATEVALUE会自动提取字符串中的日期部分并转换为日期序列号,TIMEVALUE提取时间部分转换为时间序列号,两者相加就能得到包含日期和时间的完整日期时间序列号,之后只需将单元格格式设置为「日期时间」类型即可正常显示。
额外注意事项
如果公式无法正常解析日期,大概率是你的Excel系统区域设置不支持英文日期格式(比如系统区域为中文),这种情况下可以用TEXT函数先统一格式再转换:
=DATEVALUE(TEXT(A1,"yyyy-mm-dd")) + TIMEVALUE(TEXT(A1,"hh:mm:ss"))
或者直接用DATE和TIME函数拆分重组(写法相对繁琐,优先推荐前两种):
=DATE(RIGHT(A1,4),MONTH(LEFT(A1,3)&1),MID(A1,FIND(" ",A1)+1,FIND(",",A1)-FIND(" ",A1)-1)) + TIME(IF(RIGHT(A1,2)="pm",LEFT(MID(A1,FIND(" ",A1,FIND(" ",A1)+1)+1,FIND(":",A1,FIND(" ",A1)+1)-FIND(" ",A1,FIND(" ",A1)+1)-1),2)+12,LEFT(MID(A1,FIND(" ",A1,FIND(" ",A1)+1)+1,FIND(":",A1,FIND(" ",A1)+1)-FIND(" ",A1,FIND(" ",A1)+1)-1),2)),MID(A1,FIND(":",A1)+1,2),0)
内容的提问来源于stack exchange,提问作者Wael Awada
相关产品推荐
相关产品推荐

