在Excel单元格中解析非标准日期格式

时间:2017-04-05 16:45:34

标签: excel excel-formula date-conversion

我希望转换日期格式为" 2017年3月30日,05:00:00.000"到excel日期值?使用细胞配方而不是VBA,我能做到的最优雅的解决方案是什么?

3 个答案:

答案 0 :(得分:1)

嵌套的IFERROR函数可以处理各种数字序数。

=--SUBSTITUTE(REPLACE(A2, IFERROR(FIND("st ", A2),IFERROR(FIND("nd ", A2),IFERROR(FIND("rd ", A2), IFERROR(FIND("th ", A2), LEN(A2))))), 3, ", "), ", ", " ",2)

enter image description here

我使用自定义数字格式[Color10]mmmm dd, yyyy hh:mm:ss.000;;;[Color3]@。除了文本左对齐且真实日期是右对齐之外,这将使文本看起来像红色字体,真实日期用绿色字体。

答案 1 :(得分:1)

这将执行标准"rd","th","st","nd"

=--(LEFT(A1,MIN(FIND({"rd","th","st","nd"},A1 & "thrdstnd"))-1)& ", " & SUBSTITUTE(MID(A1, MIN(FIND({"rd","th","st","nd"},A1 & "thrdstnd"))+2,LEN(A1)),",",""))

您可以根据需要在公式

中添加其他后缀

enter image description here

然后你可以随意格式化它。

答案 2 :(得分:0)

如果你想要一个真正的约会并希望放弃时间部分,那么:

=DATEVALUE(SUBSTITUTE(LEFT(A1,FIND(",",A1)-1),"th",","))

您需要嵌套 SUBSTITUTE()函数来处理" nd"和" st"如果你有它们的序数:

=DATEVALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LEFT(A1,FIND(",",A1)-1),"th",","),"nd",","),"st",","))

enter image description here