部分但不是所有Excel编号都显示为日期

时间:2011-04-04 08:33:42

标签: excel

我有一个很大的.xls文件。有些数字显示为日期 31.08显示为31.aug
31.13显示为31.13(这就是我想要的所有列) 当我将31.aug重新格式化为数字时,它显示为40768,00 我找不到将31.aug转换为31.08作为数字的方法。我所能做的就是将31.aug重新格式化为d.mm,然后显示为31.08,当我尝试将其从31.08重新格式化为数字时,它显示为40768,00。无法使用不同类型的单元格格式欺骗Excel。

6 个答案:

答案 0 :(得分:1)

您的区域设置如何?有些地区的短日期由dd.mm.yyyy标识。 (例如,爱沙尼亚语)。也许如果您更改美国/英国的区域设置并再次粘贴数据,则不会更改。

我在这里做了一个小测试。希望它有所帮助。

答案 1 :(得分:0)

内部Excel将日期存储为整数。 1是1900年1月1日。如果您输入的Excel将其解释为日期,那么它将被转换为整数。我想从现在开始就没有办法了。

“国际”选项卡上的选项中有一个设置,您可以在其中定义小数点分隔符。如果将其设置为“。”,则Excel应接受30.12作为十进制数而不是日期。

答案 2 :(得分:0)

正如其他人所指出的,Excel会将您的部分数据解释为日期而非数字,具体取决于您的区域设置。为避免这种情况发生,请尝试Tiago和stema的回复,它们将根据您的区域设置而有效。

要在大文件中修复问题而不重新输入/重新导入数据,您可以使用类似

的内容
=DAY(B5)+MONTH(B5)/100

将“日期”转换回数字。当您第一次输入时,Excel仍会将其显示为日期,但是当您将其重新格式化为“数字”时,它将显示您最初输入的值。

由于您的列似乎包含正确数字和日期之间的混合,因此您需要添加一个if()构造来分隔这两种情况。如果您尚未更改显示格式(即它仍然显示31.Aug),您可以使用

=IF(LEFT(CELL("format";B7);1)="D";DAY(B7)+MONTH(B7)/100;B7)

检查格式是否为“D”格式。如果您已将格式更改为数字,但知道所有正确数据均低于40000,则可以使用

=IF(B5>40000;DAY(B5)+MONTH(B5)/100;B5)

答案 3 :(得分:0)

如上所述,转到Control Panel - Region and Language - Advanced Settings - Numbers - and change the Decimal Symbol from "," to "." 祝你好运!

答案 4 :(得分:0)

您正在粘贴的数据是透视表。

例如,和您一样,我将大量数据复制到一个大型电子表格中。我正在复制的数据来自另一张表,它是一个数据透视表。

如果我正常粘贴,一半将显示为数字,它们在源文件中,一半将显示为日期,无缘无故,这让我感到疯狂。

如果我粘贴 - >值,但它们都会显示为数字,而且我不需要目标文件中的数据透视功能,此解决方案就可以了。

答案 5 :(得分:0)

您所要做的就是格式化单元格。

1 - 右键单击​​要插入数字的单元格。

2 - 然后单击数字,然后从数字菜单中选择“常规”。

希望这有助于解决同样问题的未来人。