繁体   English   中英

Excel:检查单元格的日期

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM