Excel中查看作为日期的单元格值的IF语句

Excel中查看作为日期的单元格值的IF语句,excel,excel-formula,conditional,Excel,Excel Formula,Conditional,如何在一个单元格内创建一个if语句,该语句查看另一个单元格的值,如果是日期,则将该值复制到该单元格中。如果不是日期,则将单元格留空 到目前为止,我已经想出了类似的方法,但显然不起作用: =if('TRACKING FILE'!I10=DATE,'TRACKING FILE'!I10, "") 比如: =IF(NOT(ISERROR(DATEVALUE(TEXT(A1,"mm/dd/yyyy")))),TEXT(A1,"mm/dd/yyyy"),"") 这将复制日期或典型日期的数字表示形式。根

如何在一个单元格内创建一个
if
语句,该语句查看另一个单元格的值,如果是日期,则将该值复制到该单元格中。如果不是日期,则将单元格留空

到目前为止,我已经想出了类似的方法,但显然不起作用:

=if('TRACKING FILE'!I10=DATE,'TRACKING FILE'!I10, "")
比如:

=IF(NOT(ISERROR(DATEVALUE(TEXT(A1,"mm/dd/yyyy")))),TEXT(A1,"mm/dd/yyyy"),"")
这将复制日期或典型日期的数字表示形式。根据您的需要更改“true”,具体取决于您将如何处理它

=IF(NOT(ISERROR(DATEVALUE(TEXT(F9,"mm/dd/yyyy")))),F9,"")

=IF(NOT(ISERROR(DATEVALUE(TEXT(F9,"mm/dd/yyyy")))),DATEVALUE(TEXT(F9,"mm/dd/yyyy")),"")

Excel中没有直接的isdate函数,但您可以在VBA中创建自己的函数并将其应用到工作表中

Function checkDate(oRange As Range) as boolean
    checkDate = isdate(oRange)
End Function 
在工作表中:

=IF(checkDate(C8) = TRUE;C8;"")

您需要自己设置格式,因为Excel将其显示为标准数字

如果您确定它将被格式化为日期,您可以使用
If(Left(Cell(“format”,myCell),1)=“D”,myCell,””)
感谢您的帮助。您指的是“Excel”所认为的日期,还是像1/1/1800这样的实际日期?它们是实际日期,但也被格式化为Excel中的日期。我不太确定你在问什么。事实上,这可以解决这个问题,但它可以将其格式化为新字段中的日期。正确,@Mathieu J,它可以解决这个问题,以及数字日期。它也可以解决我的问题。不过,我认为转换不应该是文本。OP要求它返回日期或空白。这在@dDoug是正确的,但如果您不输入日期(或未指定格式),它将显示为数字。我假设他想要一个明显的可识别的日期。我站在纠正,我的坏测试!删除我的评论。好东西+1!不幸的是,我必须坚持单元格内的公式,并且不能在这些工作表上使用任何宏。不过,我很感谢你的帮助,今后我会记住这一点。@MathieuJ:那你为什么把你的问题标记为VBA?。。。(需要明确的是,这不是一个宏,而是一个用户定义的函数,可用作单元格中的公式。)函数的内容可以是
checkDate=IsDate(橙色)
。现在你说的是
如果为真,那么为真,否则为假
,这是不必要的冗长。@Jean-FrançoisCorbett,我将其标记为VBA,因为即使我无法使用VBA解决这个问题,我也不反对学习VBA在未来如何帮助我解决同样的问题。