我希望将文本字符串(作为“常规”格式的字段导入到 Excel 中)12/31/2017 转换为日期格式,显示为;dd/mm/yyyy,但到目前为止所有尝试都失败了,包括文本到列选项,使用英语(英国)作为语言环境将其重新格式化为日期字段。
我还尝试使用基于 DATE、LEFT、MID 和 RIGHT 函数的公式来解析文本,但无济于事。问题似乎是在文本字符串中包含了 /,并且我希望将格式从 mm/dd/yyyy 更改为 dd/mm/yyyy。有人遇到过这个问题吗?
答案1
答案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))