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

Convert 7 or 8 digit number to true date

我有一列充满日期的格式 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))

您必须考虑 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 或您希望的格式;他们现在是真正的约会对象。

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

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

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

希望对您有所帮助!

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

使用正则表达式试试这个公式:

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

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