首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从yyyymmdd到mm/dd/yyyy的Excel日期转换

从yyyymmdd到mm/dd/yyyy的Excel日期转换
EN

Stack Overflow用户
提问于 2012-10-25 03:08:40
回答 5查看 325K关注 0票数 55

我已经搜索了大约一个小时关于如何在Excel中做到这一点。

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

我尝试创建自定义格式,但我甚至不确定我是否做得正确。我发现有几个地方他们想从另一条路mm/dd/yyyyyyyymmdd,但他们并没有提供帮助。

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

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

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-10-25 03:19:55

您可以在单元格旁边使用如下公式将该值转换为日期:

代码语言:javascript
复制
=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))

其中,A1是需要转换的字段。

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

代码语言:javascript
复制
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

只需突出显示您想要修复的任何单元格,然后运行代码。

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

票数 72
EN

Stack Overflow用户

发布于 2012-10-25 03:33:55

你有你所说的数据行(水平)还是列(垂直)?

如果是后者,您可以使用"Text to columns“功能将整个列”就地“转换-这样做:

选择column > Data > Text to columns > Next > Next >在"column data format“下选择"Date”,从下拉菜单>“Finish”中选择“YMD

....otherwise您可以使用以下命令转换公式

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

和格式为所需的日期格式

票数 27
EN

Stack Overflow用户

发布于 2012-10-25 03:20:32

这是一个简单的版本:

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

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

代码语言:javascript
复制
=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)).

在我的系统(Excel2010)上,它可以处理字符串或浮点数。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13056051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档