Excel#使用DATEVALUE函数时发生错误

在单元格A2我有7/21/2014 12:44:36 PM

当我使用DATEVALUE(LEFT(A2;FIND(" ";A2)-1))我得到错误#VALUE

当我使用LEFT(A2;FIND(" ";A2)-1)我得到7/21/2014

我需要做什么函数DATEVALUE(LEFT(A2;FIND(" ";A2)-1))来返回date?

DATEVALUE()旨在使Date超出纯文本。 你的单元格当前是一个Date/Time ,这是一个数值。 我build议使用以下解决scheme之一从单元格中获取date。

使用DATE()


这是最干净的选项和我会build议的方法。

 =DATE(YEAR(A2),MONTH(A2),DAY(A2)) 

YEAR()获取单元格的Year值, MONTH()获取Month值, DAY()获取Day值。 DATE()函数需要YearMonthDay值,所以通过将它们传入DATE()我们可以从A2得到Date值。

使用INT()


如果我们在A2查看你的Date的数值,我们看到它是41841.5309722222 。 数字( 41841. )的全部部分是date,小数部分( .5309722222 )是时间。 所以如果我们用INT(A2)把这个值转换成一个整数,我们将会丢失小数部分,所以剩下的( 41841 )就是date。 所以这是我们使用INT()公式

 =INT(A2) 

ROUNDDOWN(A2,0)=FLOOR.MATH(A2)=FLOOR(A2,1)可以实现同样的想法。

使用DATEVALUE()


虽然第一个解决scheme是最干净的,但是有一种方法可以使用DATEVALUE()来完成此操作,该操作包括先将单元格转换为TextTEXT()函数接受一个值和一个格式string,所以我们按照以下格式将单元格的值设置为Text

 =TEXT(A2,"yyyy-mm-dd") 

这给了我们

 2014-07-21 

然后我们把这个结果传递给DATEVALUE()

 =DATEVALUE(TEXT(A2,"yyyy-mm-dd")) 

您需要将结果格式化为date。

使用LEFT()DATEVALUE()


根据我发现的这个Stackoverflow问题 ,看起来问题可能是格式不一致的结果,所以你可以试试这个解决scheme

 =DATEVALUE(LEFT(A2,FIND(" ",A2)-1)) 

我在下面的屏幕截图中包含了这个和其他方法的结果。 你可以通过使用TYPE()命令看到我在numbertext上都testing了这个值。

结果

公式对不同值类型的结果

格式化


我假设你只想要计算的date,但如果你只是想显示date,你可以格式化单元格只显示date,忽略时间元素,虽然时间元素仍然存在于单元格中。 我假设你知道这件事,但由于你没有指定,这是一个可能的解决scheme。

请尝试:

  =INT(A2) 

并将结果格式化。

在一个评论中,我刚刚看到你提到“= INT(A2)return #VALUE!” 所以我build议select你的date单元格,数据>数据工具, – 文本到列,分隔符,分隔符选项卡(仅),并在3步骤3selectMDYdate:或更改您的语言环境说美国。

如果两者均不能使用,则在前导空格(尽pipe不显示)的情况下尝试= INT(TRIM(A2))。

如果仍然不能工作,请尝试应用=CLEAN

如果仍然没有什么作用,那么你的date来自哪里以及如何导入的进一步细节会有帮助,你的区域设置和默认date格式。

datemacros取决于系统date格式,并根据configuration的系统date格式,macros可能无法正常工作。 尝试以下解决scheme 我们在系统date/时间格式不同的另一台笔记本上打开excel文件后面临类似的问题。 在目标笔记本电脑公式使用date函数开始给出错误 下面的步骤后,错误消失。

左键点击显示时间的任务栏的右下angular部分点击date和时间设置点击更改date和时间更改日历设置点击重置返回到原始值点击所有打开的对话框上的确定现在,公式错误应该消失