在Excel中将值转换为特定日期格式

时间:2018-01-09 11:25:38

标签: excel excel-formula

我在B细胞中有以下日期。实际上这不是日期格式。

2015-11-01-01.13.34.737000

必须更改为以下格式:

11/01/2015 01:13:34 AM

我对excel公式不太熟悉。任何人都可以帮助我带来预期的输出吗?实际上,我尝试使用格式单元格更改日期格式,但没有运气,也尝试了一些excel公式。

- 提前谢谢

2 个答案:

答案 0 :(得分:1)

如果您的原始值在单元格A1中,那么正如所写的那样:

= MID(A1, 6, 2 ) & "/" & MID(A1, 9, 2) & "/" & LEFT(A1, 4) & " " & SUBSTITUTE(MID(A1, 12, 8), ".", ":") & " AM"

如果您需要将公式设置为12小时,并附加AMPM,那么显然您需要提取输入值的2位数并检查它是否为>= 12,附加正确的字符串,并在输出之前更改小时。当你已经理解了上面所做的事情时,你可能会开始看到如何做到这一点。但是,因为它有点复杂,所以:

= MID(A1, 6, 2 ) & "/" & MID(A1, 9, 2) & "/" & LEFT(A1, 4) & " " & RIGHT("0" & MOD(MID(A1, 12, 2) - 1, 12) + 1, 2) & ":" & SUBSTITUTE(MID(A1, 15, 5), ".", ":") & IF(NUMBERVALUE( MID(A1, 12, 2) ) < 12, " AM", " PM")

需要MOD在12小时后回绕,加/减1杂技是因为我们写小时从1到12,而不是0到11. right("0" & foo, 2) bit简单地确保1位数字被0填充到2位数。这个似乎可以工作,但我没有完全彻底地测试它。

答案 1 :(得分:0)

=--SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"-"," ",3),"-","/"),".",":"),":",".",3)

以上将原始字符串转换为具有以下格式的字符串:

2015/11/01 01:13:34.737000

开头的双一元将该字符串转换为真实的Excel日期/时间,可以根据需要进行格式化。