[英]Excel: Check cell for date
短篇小说:
我想检查单元格 C21 是否包含日期。 我不能使用 VB,因为它已被 GPO 停用。
从这个页面使用这个
D21 包含以下内容:
=WENN(ISTZAHL(DATWERT(C21));"date";"no date")
in english
=IF(ISNUMBER(DATEVALUE(C21))...
C21这个:
=HEUTE() # in english: =TODAY() Maybe other dates later, but allways in the correct format
但它总是返回“无日期”
使用这个: =IF(LEFT(CELL("format",C21))="D",..,..)
。 在此处了解有关CELL
公式的更多信息。
在您的示例中=TODAY()
已经是一个真实的日期而不是存储为文本的日期,因此在那里使用DATEVALUE
没有太大意义。
以下是一些示例日期以及CELL
如何识别它们:
format value output
dd/mmmm/yyyy 12/June/2015 D1
dd/mm/yyyy 12/06/2015 D1
yyyy 2015 G
general 2015 G
dd/mm 12/06 D2
mmmm June G
dd mmmm yyyy 12 June 2015 G
注意: CELL
不是易失性的,所以如果源单元格的格式发生变化,它不会自动刷新,您需要重新计算您的工作表/书籍,或者打开公式并按 Enter(也可以由任何其他易失性启动的自动重新计算公式将使其刷新)。
使用此公式,如果单元格 A1 包含无效日期,则表达式将返回 TRUE。
=ISERROR(DATE(DAY(A1),MONTH(A1),YEAR(A1)))
此公式的工作原理是评估日期的每个组成部分:DAY、MONTH 和 YEAR,然后使用 DATE 函数聚合它们。
ISERROR 将通过返回 TRUE(无效)否则 FALSE(有效)来捕获任何错误。
显然,单元格 (A1) 中的日期值必须包含 >= 01/01/1900 的值。
对“条件格式”很有用。
Excel 将日期存储为数字。 1 是 1-Jan-1900。
当涉及单元格中的数字时,Excel 无法判断数字是数字还是日期。
今天是11/06/2015
作为日期和42166
作为数字。 对于电子表格的使用者,可以对单元格进行格式化以将数字显示为任何数字格式或日期。 Excel 公式无法判断该单元格中的数字是否“意味着”为日期。
因此,没有可以在电子表格中使用的 Excel 公式可以告诉您单元格 A1 是大约 42166 个小部件还是包含 2015 年 6 月 11 日的日期。
一些提供的答案会检查单元格格式,它不会考虑单元格值,因为无论其内容如何,您都可以对每个单元格进行不同的格式设置,为了检查单元格值是否为日期,您可以使用以下命令:
if(ISERROR(VALUE(c21)),"No Date", ----do staff for Date ----)
或更短的版本,它只会通知您“无日期”状态。 如果找到日期条目,它将返回其数值:
IFERROR(VALUE(c21),"No Date")
希望这可以帮助,
干杯,
米
使用以下公式...
=IF(NOT(ISERROR(DATEVALUE(TEXT(C21,"mm/dd/yyyy")))),"valid date","invalid date")
我认为它会解决你的问题。
如果值是字符串,则此方法将起作用。
TEXT(DATE(VALUE(RIGHT(AI8,4)),VALUE(MID(TRIM(AI8),4,2)),VALUE(LEFT(AI8,2))),"dd.mm.yyyy") = AI8
只是想添加到讨论中,尽管您可以使用日期(年;月;日)进行检查,但它会给您误报,因为它的工作方式是它似乎只是翻转超出逻辑限制的值,即如果您有日期 99-12-35,它会假设您打算写 2000 年 1 月 4 日,因为那是 35 - 12 月的 31 天。 换句话说,您会发现一些错误,但不是全部。 超过 12 个月的月份也是如此。
试试这个公式(取决于日期格式):
=IF(DATE(TEXT(C21;"yyyy");TEXT(C21;"mm");TEXT(C21;"dd"));"contains date";"doesn't")
我尝试了发布的每个解决方案,但如果日期单元格中有空单元格,它们都不起作用,所以我在 GBGOLC 的答案中添加了一个检查,现在它可以处理空单元格:
=IF(NOT(OR(ISBLANK(C21),ISERR(DATE(DAY(C21),MONTH(C21),YEAR(C21))))),"Yes it is a date","Not a date")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.