Excel:检查单元格的日期

时间:2015-06-11 10:45:19

标签: excel excel-formula

简短说明:

如果它包含日期,我想检查单元格C21。我无法使用VB,因为GPO已将其停用。

this page

使用此功能

D21包含以下内容:

=WENN(ISTZAHL(DATWERT(C21));"date";"no date")
in english
=IF(ISNUMBER(DATEVALUE(C21))...

C21 this:

=HEUTE() # in english: =TODAY() Maybe other dates later, but allways in the correct format

但总是返回“没有约会”

7 个答案:

答案 0 :(得分:7)

使用此:=IF(LEFT(CELL("format",C21))="D",..,..)。详细了解CELL公式here

在您的示例中=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键(也是由任何其他挥发性公式启动的自动重新计算将导致它刷新。

答案 1 :(得分:4)

使用此公式,如果单元格A1包含无效日期,表达式将返回TRUE。

=ISERROR(DATE(DAY(A1),MONTH(A1),YEAR(A1)))

此公式的工作原理是评估日期的每个组成部分:DAY,MONTH和YEAR,然后使用DATE函数聚合它们。

ISERROR将通过返回TRUE(无效)来捕获任何错误,否则为FALSE(有效)。

显然,单元格(A1)中的日期值必须包含值> = 01/01/1900。

对“条件格式”很有用。

答案 2 :(得分:2)

Excel将日期存储为数字。 1是1900年1月1日。

当谈到单元格中的数字时,Excel无法判断数字是数字还是日期。

今天11/06/2015为日期,42166为数字。对于电子表格的使用者,可以格式化单元格以将数字显示为任何数字格式或日期。 Excel公式无法判断该单元格中的数字是否“意味着”成为日期。

因此,没有Excel公式可以在电子表格中使用,该电子表格将告诉您单元格A1是否约为42166个小部件,或者是否包含6月11日至2015年6月的日期。

答案 3 :(得分:1)

使用以下公式...

=IF(NOT(ISERROR(DATEVALUE(TEXT(C21,"mm/dd/yyyy")))),"valid date","invalid date")

我认为它会解决你的问题。

答案 4 :(得分:1)

一些提供的答案将检查不考虑单元格值的单元格格式,因为无论单元格的内容如何,​​您都可以设置不同的格式,以检查单元格值是否为日期,您可以使用以下方法:

if(ISERROR(VALUE(c21)),"No Date", ----do staff for Date ----)

或更短的版本只会通知您“无日期”状态。如果找到日期条目,它将返回其数值:

IFERROR(VALUE(c21),"No Date")

希望这会有所帮助,
干杯,
M

答案 5 :(得分:0)

如果该值为字符串,则此方法有效。

TEXT(DATE(VALUE(RIGHT(AI8,4)),VALUE(MID(TRIM(AI8),4,2)),VALUE(LEFT(AI8,2))),"dd.mm.yyyy") = AI8

答案 6 :(得分:0)

只想添加到讨论中,尽管您可以检查日期(年;月;日),但这会给您带来误报,因为它的工作方式是,它似乎只会超出逻辑值限制,即如果您的日期为99-12-35,则将假设您打算写2000年1月4日,因为那是35日-12月的31天。换句话说,您会发现一些错误,但不是全部。同样超过12个月。