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

时间:2016-04-27 10:56:25

标签: excel date

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

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

=(MID(A2,4,2)&"/"&LEFT(A2,2)&"/"&RIGHT(A2,2))+0

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

2 个答案:

答案 0 :(得分:7)

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

您也可以使用* 1代替+0

=(MID(A2,4,2)&"/"&LEFT(A2,2)&"/"&RIGHT(A2,2))*1

或者你可以放弃+0和前面的添加 - 在它之前(它应该都是相同的。

=--(MID(A2,4,2)&"/"&LEFT(A2,2)&"/"&RIGHT(A2,2))

答案 1 :(得分:6)

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

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

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

=DATE(RIGHT(A2,4),MID(A2,4,2),LEFT(A2,2))