[英]Excel #Value error when using DATEVALUE function
在单元格A2
中,我有7/21/2014 12:44:36 PM
当我使用DATEVALUE(LEFT(A2;FIND(" ";A2)-1))
时,我收到错误#VALUE
。
当我使用LEFT(A2;FIND(" ";A2)-1)
我得到7/21/2014
。
我需要做什么 function DATEVALUE(LEFT(A2;FIND(" ";A2)-1))
只返回日期?
DATEVALUE()
旨在使纯文本生成Date
。 您的单元格当前是Date/Time
,这是一个数值。 我建议使用以下解决方案之一从单元格中获取日期。
DATE()
这是我推荐的最干净的选择和方法。
=DATE(YEAR(A2),MONTH(A2),DAY(A2))
YEAR()
从单元格中获取Year
值, MONTH()
获取Month
值, DAY()
获取Day
值。 DATE()
函数采用Year
, Month
和Day
值,因此通过将它们传递给DATE()
我们可以从A2
获取Date
值。
INT()
如果我们查看A2
Date
的数值,我们会看到它是41841.5309722222
。 数字的整个部分( 41841.
)是日期,小数部分( .5309722222
)是时间。 因此,如果我们使用INT(A2)
将此值转换为整数,我们将丢失小数部分,以便剩下的所有( 41841
)是日期。 所以这是我们使用INT()
公式
=INT(A2)
使用ROUNDDOWN(A2,0)
或=FLOOR.MATH(A2)
或=FLOOR(A2,1)
可以实现相同的想法。
DATEVALUE()
虽然第一个解决方案是最干净的,但有一种方法可以使用DATEVALUE()
来完成此操作,该方法包括首先将单元格转换为Text
。 TEXT()
函数接受一个值和一个格式字符串,因此我们将单元格值格式化为Text
,如下所示
=TEXT(A2,"yyyy-mm-dd")
这给了我们
2014-07-21
然后我们将结果传递给DATEVALUE()
=DATEVALUE(TEXT(A2,"yyyy-mm-dd"))
您需要将结果格式化为日期。
LEFT()
和DATEVALUE()
基于我发现的这个Stackoverflow问题 ,似乎问题可能是格式不一致的结果,所以你可能会尝试这个解决方案
=DATEVALUE(LEFT(A2,FIND(" ",A2)-1))
我在下面的截图中包含了我的结果以及其他方法。 你可以通过我使用TYPE()
命令看到我在number
和text
上测试它的值。
我假设您只想要计算日期,但如果您只想显示日期,则可以将单元格格式化为仅显示日期并忽略时间元素,尽管时间元素仍将出现在单元格中。 我假设您知道这一点,但由于您没有指定,这是一个可能的解决方案。
请试试:
=INT(A2)
并格式化结果以适应。
在评论中我刚刚看到你提到“= INT(A2)返回#VALUE!” 所以我建议选择你的日期单元格,DATA> Data Tools, - Text to Columns,Delimited,Delimiters Tab(仅限),并在第3步(共3步)选择MDY for Date:或将你的语言环境更改为USA。
如果你有前导空格(虽然没有显示它们),如果两个都没有工作try = INT(TRIM(A2))。
如果仍然无法正常工作,请尝试应用=CLEAN
。
如果仍然没有任何效果,那么您的日期来自哪里以及如何导入将有用的更多详细信息,以及您的区域设置和默认日期格式。
日期宏取决于系统日期格式,并且基于配置的系统日期格式,宏可能无法工作。 尝试以下解决方案 我在另一台系统日期/时间格式不同的笔记本电脑上打开excel文件后遇到了类似的问题。 在使用日期函数的目标笔记本电脑公式开始给出错 按照以下步骤操作后,错误消失了。
左键单击任务栏右下角显示时间点击日期和时间设置点击更改日期和时间更改日历设置点击重置返回原始值点击所有打开的对话框上的确定现在excel公式错误应该消失
简单的解决方案 - 我找到了一个非常有效的解决方案:
=DATEVALUE(TEXT([CELL],"MM/DD/YYYY")
实际上,这让我可以将任何值转换为文本,然后再转换回日期。 它修复了我的 Datevalue 错误,无论原始单元格格式如何,我都可以使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.