Excel 文本转日期格式

Excel 文本转日期格式

我希望将文本字符串(作为“常规”格式的字段导入到 Excel 中)12/31/2017 转换为日期格式,显示为;dd/mm/yyyy,但到目前为止所有尝试都失败了,包括文本到列选项,使用英语(英国)作为语言环境将其重新格式化为日期字段。

我还尝试使用基于 DATE、LEFT、MID 和 RIGHT 函数的公式来解析文本,但无济于事。问题似乎是在文本字符串中包含了 /,并且我希望将格式从 mm/dd/yyyy 更改为 dd/mm/yyyy。有人遇到过这个问题吗?

答案1

文本A1, 在B1进入:

=DATE(RIGHT(A1,4),LEFT(A1,FIND("/",A1)-1),TRIM(MID(SUBSTITUTE($A1,"/",REPT(" ",999)),2*999-998,999)))

并应用正确的格式:

在此处输入图片描述

答案2

我刚刚在自己的电脑上证实了 Dave 的猜测,即机器的时钟设置不仅影响 Excel,还限制Excel 能够理解除计算机时钟格式以外的日期。

就我个人而言,我将 Windows 时钟设置为显示 dd-mm-yy,尽管我身在美国,因此当我输入“12/31/2017”时,无论我怎么尝试,Excel 都无法理解这是一个日期。将数字格式更改为短日期、长日期或数字都没有区别,它仍然是一个字符串。将其置于 DATEVALUE()、VALUE() 或 TEXT("12/31/2017","dd/mm/yyyy") 等函数中会返回 #VALUE! 错误。

但为了不让您一无所获,我整理了一个不太漂亮但可行的公式来应用于您的细胞:

在哪里

A1 ="12/31/2017"
A2 =LEFT(A1,FIND("/",A1)-1) [month]
A3 =MID(A1,FIND("/",A1)+1,(FIND("/",A1,FIND("/",A1)+1))-(FIND("/",A1)+1)) [day]
A4 =RIGHT(A1,4) [year]

你会连接起来

=CONCATENATE(A3,"/",A2,"/",A4)

总计公式为

=CONCATENATE(MID(A1,FIND("/",A1)+1,(FIND("/",A1,FIND("/",A1)+1))-(FIND("/",A1)+1)),"/",LEFT(A1,FIND("/",A1)-1),"/",RIGHT(A1,4))

相关内容