将7或8位数字转换为真实日期

时间:2017-04-03 22:43:33

标签: excel date google-sheets spreadsheet date-conversion

我有一个完整的日期格式mmddyyyy,我想知道我是否可以解析或转换为mm / dd / yyyy。我尝试选择整行,然后点击格式 - >号码 - >约会,但是当我这样做时,12082016之类的日期变为6/7/34979,这当然毫无意义。关于如何解决这个问题的任何想法?

编辑:

Examples:

 7072016   12/11/2021
 1202017    12/2/2017
10042016    10/4/2016
 9212016    8/12/2023

我将B更改为F,因为这是日期列的位置。奇怪的是,有些值是正确的

=date(right(B2, 4), left(B2, 2), mid(B2, 3, 2))

4 个答案:

答案 0 :(得分:5)

您必须考虑7位和8位数字。显然,您在导入数据时丢失了一些前导零。

=date(right(right("0"&A2, 8), 4), left(right("0"&A2, 8), 2), mid(right("0"&A2, 8), 3, 2))
' or,
=--replace(replace(right("0"&A2, 8), 5, 0, "/"), 3, 0, "/")

将单元格格式化为mm/dd/yyy或您想要的格式;它们现在是真实的日期。

enter image description here

答案 1 :(得分:3)

如果您使用的是Google表格,则需要将其中的数字格式化为00000000,以确保有完整的8位数,包括少于10个月的前导零。这样,使用MMDDYYYY数字突出显示列,然后从 Format 菜单中选择 Number ,然后选择自定义数字格式

The Custom Number Format option on the Google Sheets Format Menu

然后,在出现的对话框中,输入00000000(八个零)并点击应用

Google Sheets' Custom Number Format Dialog

您的数据将被重新格式化,您的日期应该是正确的:

The resulting dates are correct when the MMDDYYYY numbers are zero-filled.

希望这有帮助!

答案 2 :(得分:0)

日期&时间值基本上是一系列数字,这就是为什么它总是将其转换为日期或时间,为其格式化。 Bttr使用自定义格式,,或根据需要更改默认值。 如果你想将任何数字转换成日期, 首先写一年的第一个日期将其转换为数字,得到趋势,写入nXt值,&转换为适当的格式。

答案 3 :(得分:0)

使用正则表达式尝试此公式:

=TEXT(REGEXREPLACE(TEXT(A1,"00000000"),"(\d{2})+(\d{2})+(\d{4})","$1/$2/$3"),"m/d/yyyy")

m/d/yyyy更改为您需要的任何日期格式。