Excel日期从yyyymmdd转换为mm/dd/yyyy

Mal*_*chi 54 excel vba excel-2007 excel-vba

我一直在寻找大约一个小时的Excel如何做到这一点.

我有一个从旧系统创建的Excel文件,我从SQL Server数据库中提取信息,我将把信息输回到SQL Server数据库,并希望日期匹配.

我尝试过创建一个自定义格式,但我不确定我是否正确地做了.我发现了几个地方,他们希望走另一条路mm/dd/yyyyyyyymmdd ,但他们都没有帮助.

我不熟悉在任何Microsoft产品中使用VBA,否则我确信这将是一个简单的任务.

我有两个需要更改的单独列.

如何将整列从(float)yyyymmdd格式化 为(Date)mm/dd/yyyy

Dan*_*iel 71

您可以使用像这样的公式将值转换为日期,在单元格旁边:

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

A1是您需要转换的字段.

或者,您可以在VBA中使用此代码:

Sub ConvertYYYYMMDDToDate()
   Dim c As Range
   For Each c In Selection.Cells
       c.Value = DateSerial(Left(c.Value, 4), Mid(c.Value, 5, 2), Right(c.Value, 2))
       'Following line added only to enforce the format.
       c.NumberFormat = "mm/dd/yyyy"
   Next
End Sub
Run Code Online (Sandbox Code Playgroud)

只需突出显示要修复的任何单元格并运行代码即可.

请注意,注释中提到的RJohnson,如果您选择的某个单元格为空,则此代码将出错.您可以在c.value上添加条件以跳过更新(如果它为空).

  • 甜!这是YYYYMMDDHHMMSS到日期的一个:`= DATE(左(B1,4),MID(B1,5,2),MID(B1,7,2)) (3认同)

bar*_*ini 26

你有陈述的数据(水平)或COLUMNS(垂直)吗?

如果是后者,您可以使用"文本到列"功能来"原位"转换整列 - 为此:

选择列>数据>文本到列>下一步>下一步>从"列数据格式"下选择"日期",从下拉列表中选择"YMD">完成

....否则你可以使用公式转换

=TEXT(A1,"0000-00-00")+0

并以所需的日期格式格式化


Leo*_*Leo 6

这是一个裸骨版本:

假设您在Cell A1中以您描述的格式有一个日期.例如:19760210.

然后这个公式将给你你想要的日期:

=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)).
Run Code Online (Sandbox Code Playgroud)

在我的系统(Excel 2010)上,它适用于字符串或浮点数.


小智 6

转换dd/mm/yyyymm/dd/yyyy

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