![无法在 Excel 中将文本转换为所需的 dd-mm-yyyy](https://linux22.com/image/1476370/%E6%97%A0%E6%B3%95%E5%9C%A8%20Excel%20%E4%B8%AD%E5%B0%86%E6%96%87%E6%9C%AC%E8%BD%AC%E6%8D%A2%E4%B8%BA%E6%89%80%E9%9C%80%E7%9A%84%20dd-mm-yyyy.png)
尝试解决以下 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 位数字)格式。
只需将所有数据复制到 A 列(或将数据导入到 A 列)。
进入B1
=DATE(RIGHT(A1,4),MID(A1,LEN(A1)-5,2),LEFT(A1,LEN(A1)-6))
,然后向下复制。将 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 无法判断七位数字的数据是一位数字的日期、两位数字的月份,还是反之亦然,因此您必须考虑到这一点。
如果您有六位数的数字,基本思路也是相同的,只是填充起来稍微困难一些。
此外,这种方法对您有用,因为您知道最后四位数字是年份,没有两位数的年份,并且月份都是两位数,没有一位数的月份。如果您不能确定这一点,则需要更复杂的方法。