有些日期被认定为日期,有些日期未被确认。为什么?

时间:2011-01-11 17:59:25

标签: excel date

以下是日期列表:

11年4月22日
11年12月19日
11年11月4日
11年12月8日
11年9月27日
11年9月27日
04-01-11

在Excel中复制此列表时,其中一些会被识别为日期,而其他则不会被识别为以下方式:

11年4月22日
11年12月19日
11-04-11(日期)
12-08-11(日期)
11年9月27日
11年9月27日
04-01-11(日期)

有谁知道为什么?以及如何强制Excel将所有列表项识别为日期?

非常感谢!

10 个答案:

答案 0 :(得分:33)

这并不难......

查看此论坛帖子:

http://www.pcreview.co.uk/forums/excel-not-recognizing-dates-dates-t3139469.html

简而言之:

  1. 仅选择“日期”列
  2. 点击数据>文字到列
  3. 点击下一步
  4. 点击下一步
  5. 在向导的第3步中,选中Col数据格式下的“Date”,然后 从下拉列表中选择:“DMY”。
  6. 点击完成

答案 1 :(得分:6)

这是由计算机的区域设置引起的。

将数据粘贴到excel时,它只是一堆字符串(不是日期)。

Excel有一些逻辑来识别您当前的数据格式以及一些类似的日期格式或明显的日期格式,它可以假设它是一个日期。如果能够将您粘贴的数据与有效日期匹配,那么它会将其格式化为其所在单元格中的日期。

您的具体示例是由于您的日期列表格式为“m / d / yy”,这是美国格式。它在我的Excel中正确粘贴,因为我将我的区域设置设置为“美国英语”(即使我是加拿大人:) :)

如果您的系统设置为加拿大英语/法语格式,那么它将为“d / m / yy”格式,并且不会识别月份所在的任何日期> 13。

将包含日期的数据导入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”)另一个副作用是它会正确排序为字符串。

为了避免来回交换您的区域设置,您可以考虑在Excel中写一个宏来粘贴数据。一个简单的弹出格式和一些基本逻辑来重新格式化日期并不会太困难。

答案 2 :(得分:4)

在你的情况下,它可能采用DD-MM-YY格式,而不是MM-DD-YY。

答案 3 :(得分:2)

解决此问题的最快捷最简单的方法是使用相同的分隔符在日期分隔符上进行查找和替换。 例如,在这种情况下,查找“ - ”并替换为“ - ”,不知道为什么会这样,但您会发现所有日期都是正确对齐的,因为它们应该在执行此操作之后。

答案 4 :(得分:1)

这对我有用。我用所有日期突出显示了该列。在“数据”标签下,我选择了'文本到列'并选择了' Delimited'盒子,我打到下一个并完成。虽然它似乎没有任何改变,但Excel现在将列作为日期读取,我可以按日期排序。

答案 5 :(得分:1)

以下是mm / dd / yyyy格式对我有用的东西:

=DATE(VALUE(RIGHT(A1,4)),VALUE(LEFT(A1,2)),VALUE(MID(A1,4,2)))

将具有公式的单元格转换为日期格式,然后向下拖动公式。

答案 6 :(得分:0)

右键单击列标题,然后选择“设置单元格格式”,选择“日期”并选择所需的日期格式。那些未被识别的是不明确的,因此不会被解释为任何东西,但在将格式应用于列后解决了。请注意,对于我来说,在Excel 2002 SP3中,上面给出的日期会在粘贴时自动正确地解释为日期。

答案 7 :(得分:0)

此问题的解决方法包括临时更改区域设置,因此CSV导入文件的日期格式“匹配”区域设置。

Open Office似乎以类似的方式处理该问题,请参阅:http://www.oooforum.org/forum/viewtopic.phtml?t=85898

答案 8 :(得分:0)

最简单的解决方案是首先使用date()left()mid()将yy,mm,dd放入right()公式中。在这种情况下,假设您的输入日期是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)从单元格中间获取2位数字,从第4位(dd)开始。

为什么会出现这种情况:

当我将加拿大银行数据导入Excel时,我总是遇到这个问题。简而言之,您的输入日期格式与您的区域设置不符。

似乎您的设置意味着Excel希望日期输入为DD-MM-YY或YY-MM-DD,但您的输入数据格式为MM-DD-YY。

因此,excel将您的日期视为月份,反之亦然,这意味着任何日期低于12的日期将被确认为日期,但错误日期(月和日扭转)以及任何日期超过12韩元&# 39; t被认为是一个日期,因为Excel将这一天视为第13个月+。

不幸的是,您无法更改格式,因为Excel已经锁定了这些日/月分配,您最终会在视觉上移动Excel THINKS的日期和月份,而不是重新分配它们。 / p>

坦率地说,令我惊讶的是excel中没有日期反转工具,因为我认为这种情况一直都会发生。但上面的公式非常简单。

注意:如果您的日期没有前导零(即4/8/11 vs 04/08/12),它会变得更加棘手,因为您必须根据日期提取不同数量的数字(即4 / 9/11 vs 4/10/11)。然后,您必须在公式中构建几个if语句。毛。

答案 9 :(得分:0)

当我尝试在excel中转​​换为澳大利亚日期格式时遇到了这个问题。我用定界符分割了单元格,并从分割后的单元格中使用了以下代码,然后更改了问题区域。

=date(dd,mm,yy)