有些date被认为是date,有些date不被认可。 为什么?
这是一个date列表:
11年4月22日
11年12月19日
11年11月4日
11年12月8日
11年9月27日
11年9月27日
11年4月1日
当您在Excel中复制此列表时,其中一些被识别为date,而另一些则不被识别,如下所示:
11年4月22日
11年12月19日
11-04-11(date)
12-08-11(date)
11年9月27日
11年9月27日
04-01-11(date)
有谁知道为什么? 以及如何强制Excel将所有列表项目识别为date?
非常感谢!
这并不难…
看看这个论坛post:
http://www.pcreview.co.uk/forums/excel-not-recognizing-dates-dates-t3139469.html
简言之,
- 只select“date”列
- 单击数据>文本到列
- 点击下一步
- 点击下一步
- 在向导的第3步中,选中校准数据格式下的“date”,然后从下拉列表中select“DMY”。
- 点击完成
在你的情况下,它可能是采取DD-MM-YY格式,而不是MM-DD-YY。
这是由您的计算机的区域设置引起的。
当你将数据粘贴到Excel中时,它只是一堆string(不是date)。
Excel有一些逻辑来识别你当前的数据格式,以及一些类似的date格式或明显的date格式,它可以认为它是一个date。 如果能够将粘贴的数据与有效date进行匹配,则会将其格式化为所在单元格中的date。
您的具体示例是由于您的date列表被格式化为美国格式的“m / d / yy”。 它在我的Excel中正确粘贴,因为我的区域设置设置为“美国英语”(即使我是加拿大人:))
如果你的系统设置为加拿大英文/法文格式,那么它会预计“日/月/日”的格式,不承认月份> 13的任何date。
将包含date的数据导入到excel中的最佳方法是以此格式复制它。
2011-04-22 2011-12-19 2011-11-04 2011-12-08 2011-09-27 2011-09-27 2011-04-01
这是“yyyy-MM-dd”,这种格式在我见过的每一台计算机(通常被称为ODBC格式或标准格式)中的识别方式都是一样的,单位总是从最大到最小(“yyyy- MM-dd HH:mm:ss.fff“)另一个副作用就是它会正确sorting为一个string。
为了避免交换区域设置,你可以考虑在excel中写一个macros来粘贴数据。一个简单的popup式格式和一些基本的逻辑来重新设置date并不是太困难。
最快和最简单的方法来解决这个问题是做一个查找和replace你的date分隔符,使用相同的分隔符。 例如在这种情况下查找“ – ”和replace为“ – ”,不知道为什么这个工程,但你会发现所有的date是正确的,因为他们应该在这样做之后。
右键单击列标题,然后select格式化单元格,selectdate并select所需的date格式。 那些没有被识别的是不明确的,因此不会被解释为任何东西,但是在对列应用格式化之后解决。 请注意,对于我来说,在Excel 2002 SP3中,上面给出的date会自动正确地解释为粘贴date。
解决此问题的方法是暂时更改您的区域设置,以便CSV导入文件的date格式与区域设置“匹配”。
对于这个问题,Open Office似乎也是以类似的方式工作,请参阅: http : //www.oooforum.org/forum/viewtopic.phtml?t = 85898
这是为我工作。 我用我所有的date突出显示了列。 在“数据”选项卡下,我select了“文本到列”并select了“分隔符”框,然后我点击并完成。 尽pipe看起来好像没有什么变化,但是Excel现在可以将date作为date读取,并且可以按date进行sorting。
最简单的解决方法是先将yy,mm,dd放入date()
公式中,先用left()
, mid()
和right()
提取它们。 在这种情况下,假设您的inputdate在A1:
=date(right(A1,2)+100,left(A1,2),mid(A1,4,2))
上面的解释:
=right(A1,2)
获取单元格中的最后两位数字(yy)。 我们添加100,因为它默认为1911,而不是2011(如果它没有这样做,则省略+100)
=left(A1,2)
获取单元格中的前两位数(mm)。
=mid(A1,4,2)
从单元格的第四位(dd)开始,在单元格的中间位置获取两位数字。
为什么这首先发生:
当我将加拿大银行数据导入excel时,我总是遇到这个问题。 简而言之,您的inputdate格式与您的区域设置不符。
看来您的设置意味着Excel需要将dateinput为DD-MM-YY或YY-MM-DD,但input数据格式为MM-DD-YY。
所以,excel将你的日子看作是月份,反之亦然,这意味着任何date低于12的date都将被认为是一个date,但错误的date(月份和date颠倒)以及任何date高于12的date都不会被识别作为一个date,因为Excel将该日视为第13个月+月。
不幸的是,你不能只是改变格式,因为Excel已经locking了那些日/月分配,并且你最终只能移动几天和几个月的Excel THINKS,而不是重新分配它们。
坦率地说,我很惊讶在excel中没有date反转工具,因为我会一直这样想。 但是上面的公式很简单。
注意:如果你的date没有前导零(即4/8/11 vs 04/08/12),那么就会变得更加棘手,因为你必须根据date提取不同数量的数字(即4/9/11 vs 4 / 10/11)。 如果您的公式中有陈述,则必须build立一对夫妇。 毛。
下面是以mm / dd / yyyy格式为我工作的内容:
=DATE(VALUE(RIGHT(A1,4)),VALUE(LEFT(A1,2)),VALUE(MID(A1,4,2)))
将公式单元格转换为date格式并向下拖动公式。