在Excel中将字符串日期(DD.MM.YY)更改为Dateformat(YYYY-MM-DD)

时间:2017-06-23 17:22:00

标签: excel string excel-vba date vba

我的excel表中有近2,00,000条数据记录,我将Date列作为这样的字符串(dd.mm.yy)我必须将其转换为(YYYY-MM-DD)的dateformat。 / p>

我试过了 -

对于示例日期字符串1.11.11,我尝试将.11替换为.2011,但它也会将月份更改为1.2011.2011,并且我的工作表在2010年至2016年期间有大量记录。

  

示例 - 我的单元格有1.11.11,我想将其转换为2011-01-01(YYYY-MM-DD)

请帮忙! 谢谢。

4 个答案:

答案 0 :(得分:4)

使用此选项将其更改为真实日期:

=DATE(2000+SUBSTITUTE(RIGHT(A1,2),".",""),SUBSTITUTE(MID(A1,FIND(".",A1)+1,2),".",""),SUBSTITUTE(LEFT(A1,2),".",""))

然后将输出格式化为您想要的:YYYY-MM-DD

[1]: https://i.stack.imgur.com/PRm

要做到这一点,需要vba。

选择日期单元格并运行此代码。

Sub datechange()
Dim rng As Range
Dim str() As String

For Each rng In Selection
    str = Split(rng.Value, ".")
    rng.Value = DateSerial(2000 + str(2), str(1), str(0))
Next rng
Selection.NumberFormat = "yyyy-mm-dd"

End Sub

答案 1 :(得分:0)

假设值从A1开始并且它们都是真正的DD.MM.YY(带有零(04,06等)......

="20"&RIGHT(A1,2)&"-"&MID(A1,4,1)&"-"&LEFT(A1,2)

答案 2 :(得分:0)

尝试以下公式:

=TEXT(SUBSTITUTE(A1,".","/"),"YYYY-MM-DD")

答案 3 :(得分:-1)

试试这个:

select convert(varchar,convert(datetime,'26-July-2018'),105)