Exceldate从yyyymmdd转换为mm / dd / yyyy

我一直在寻找关于如何在Excel中做到这一点的一个小时。

我有一个从旧系统创build的Excel文件,我从SQL Server数据库中提取信息,我将input信息返回到SQL Server数据库,并希望date匹配。

我尝试过创build一个自定义格式,但是我不确定我是否做得正确。 我发现了几个地方,他们想以另一种方式将mm/dd/yyyy改为yyyymmdd但是他们没有帮助。

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

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

如何格式化(float) yyyymmdd(Date) mm / dd / yyyy的整个列

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

 =DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)) 

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 

只需突出显示您想要修复的单元并运行代码即可。

你有你说的数据(水平)的行或列(垂直)?

如果是后者,则可以使用“文本到列”function将“整个列”转换为“原位” – 这样做:

select列>数据>文本到列>下一个>下一个>从下拉列表中select“列数据格式”和“YMD”下的“date”

….否则,你可以通过使用公式转换

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

并以要求的date格式格式化

这里是一个裸露的骨头版本:

假设您在所描述的格式中在单元格A1中有一个date。 例如: 19760210

那么这个公式会给你你想要的date:

 =DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)). 

在我的系统上(Excel 2010)它可以使用string或浮点数。

dd/mm/yyyy转换为mm/dd/yyyy

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