无法在 Excel 中将文本转换为所需的 dd-mm-yyyy

无法在 Excel 中将文本转换为所需的 dd-mm-yyyy

尝试解决以下 excel 问题时遇到麻烦:我正在使用 Excel 2003:从以下格式的 text.txt 导入数千个数据并尝试拆分 dd-mm-yyyy

-> 6022015 (7 号)

->26012015 (8号)

在 Excel 中,数据工具>文本到列>固定宽度

-> 6!02!2015 (7 号)

->26!01!2015 (8 号)

列数据格式,选择常规,然后完成。对于 7 个数字,成功将它们拆分成 3 列。但是对于 8 个数字,会出现以下错误。以下是结果

->26012015 更改为->2 60 12015 “这应该是 26 1 2015”

-> 6022015 更改为->6 2 2015

有人能找出错误并提供解决方案吗?

答案1

希望您的日期采用“ddmmyyyy”格式,然后请尝试查找和替换,而不是将文本复制到列中。“!”没有什么然后应用以下公式。

=IF(LEN(A2)=8,LEFT(A2,2)&"-"&MID(A2,3,2)&"-"&RIGHT(A2,4),"0"&LEFT(A2,1)&"-"&MID(A2,2,2)&"-"&RIGHT(A2,4))

希望这是你所期望的:)

答案2

假设原始数据为dmmyyyy(7 位数字)或ddmmyyyy(8 位数字)格式。

  1. 只需将所有数据复制到 A 列(或将数据导入到 A 列)。

  2. 进入B1 =DATE(RIGHT(A1,4),MID(A1,LEN(A1)-5,2),LEFT(A1,LEN(A1)-6)),然后向下复制。

  3. 将 B 列格式化为dd-mm-yyyy。B 列将是您想要的内容。

答案3

尝试一下这个:

=substitute(a1,"!","/")

如果它没有以日期形式返回,请尝试添加零:

=substitute(a1,"!","/")+0

并且/或者,如果单元格中包含任何空白(详细文本的左侧或右侧),则修剪单元格如下:

=trim(substitute(a1,"!","/")+0)

答案4

我个人会采用这种方法wilson,将其拆开然后重新组合起来。但是,如果您希望成功完成向导Text to Columns,则必须使用分隔符或相同长度的数据。

相同长度的数据很容易实现。只需在旁边或任何方便的地方使用“辅助列”,然后使用以下公式:

=IF(LEN(A1)=7,")"&A1,A1)

复制下来,直到得到一列八个字符的值。复制完成后,复制该列,Paste|Values|Special得到一列值,而不是公式。使用Text to Columns向导,固定宽度,这样您就可以告诉它将内容解释为日期,单个列(您不希望将其分成几部分),并告诉它DMY日期类型。

它会给你一列输出,现在将是“真实日期”,你可以复制它,然后将其粘贴到原始数据上。或者按它,或者其他方式。

关键是使所有数据的长度都为八个字符,以便可以将它们全部视为相同:Excel 无法判断七位数字的数据是一位数字的日期、两位数字的月份,还是反之亦然,因此您必须考虑到这一点。

如果您有六位数的数字,基本思路也是相同的,只是填充起来稍微困难一些。

此外,这种方法对您有用,因为您知道最后四位数字是年份,没有两位数的年份,并且月份都是两位数,没有一位数的月份。如果您不能确定这一点,则需要更复杂的方法。

相关内容