Excel:文本字符串到日期转换

pur*_*lau 4 excel date

我有一个工作公式,用于以下文本到目前为止的转换.但是,我不明白为什么必须添加尾随0才能以YYYY格式显示年份.

2016年4月21日转换为2016年4月21日

=(MID(A2,4,2)&"/"&LEFT(A2,2)&"/"&RIGHT(A2,2))+0
Run Code Online (Sandbox Code Playgroud)

这非常简单直接.但是,如果你删除公式末尾的0,它将只显示16而不是2016.但我可以做Right(A2,4)而不是Right(A2,2).但我还是想知道为什么?任何人?谢谢!

For*_* Ed 7

尾随零将整个事物转换为数学运算,使得字符串(+0左侧的所有内容)被视为数字.

你也可以使用*1而不是+0

=(MID(A2,4,2)&"/"&LEFT(A2,2)&"/"&RIGHT(A2,2))*1
Run Code Online (Sandbox Code Playgroud)

或者你可以放弃+0和前面的添加 - 在它之前(它应该都做同样的事情.

=--(MID(A2,4,2)&"/"&LEFT(A2,2)&"/"&RIGHT(A2,2))
Run Code Online (Sandbox Code Playgroud)


小智 6

正如Ed正确回答的那样,这是因为它将您的日期字符串视为数字.

但是,Excel必须解释字符串才能获得它真正的数字,并且这样做依赖于区域设置.在美国区域设置下,您的公式很有效,但是当我将其插入带有英国区域设置的Excel时,我得到#Value,因为"04/21/16"不是英国的有效日期或号码.

为了避免这个问题,您应该使用DATE()函数将其转换为日期,无论您的区域设置如何,它都将起作用.

=DATE(RIGHT(A2,4),MID(A2,4,2),LEFT(A2,2))
Run Code Online (Sandbox Code Playgroud)