我需要捕获单元格,并且仅在单元格是日期时将其放在另一张工作表上。有没有办法说 =IF('Master Intake Tracker'!K7="Any Date",'Master Intake Tracker'!I7,"")........有什么办法吗?并且如果单元格没有答案,也不会捕获?所以如果单元格为空白,它就不会捕获并发送到另一张工作表?
答案1
或者,您可以使用以下用户定义函数(它只是使 VBA 函数在电子表格上可用:
Function IsADate(aCell As Range) As Boolean
If IsDate(aCell.Value) Then
IsADate = TRUE
Else
IsADate = FALSE
End If
End Function
如果单元格具有常规日期格式的 Excel 值或具有指定日期的字符串(例如“2012 年 11 月 3 日”),则此函数将返回 TRUE。
使用很简单:
=IF(ISADATE('Master Intake Tracker'!K7),'Master Intake Tracker'!I7,"")
答案2
日期在 Excel 中只是格式化的数字 - 很难明确检查日期,但您可能只需这样做:
=IF('Master Intake Tracker'!K7>0,'Master Intake Tracker'!I7,"")
这遵循您问题中的公式的逻辑 - 如果您想返回日期本身,则更改为:
=IF('Master Intake Tracker'!K7>0,'Master Intake Tracker'!K7,"")
答案3
使用=DateValue
并让 Excel 决定您的输入是否是有效日期。
假设您的测试单元是 A1,则可以使用以下公式:
=IF(ISERROR(DATEVALUE(TEXT(A1,"MM/DD/YYYY"))),"no its not!","its a date!")
根据您的示例进行定制:
=IF(ISERROR(DATEVALUE(TEXT('Master Intake Tracker'!K7,"MM/DD/YYYY"))),"",'Master Intake Tracker'!K7)
答案4
你的问题有点模糊和含糊。如果你的意思是“约会,存储为日期(以 Excel 的日期数字表示形式)?“, 然后
=IF(AND(K7<=NOW(), K7>=(TODAY()-365)), …, "")
可能是个不错的起点。