Excel:检查单元格的日期

glo*_*243 5 excel excel-formula

短篇小说:

我想检查单元格C21是否包含日期.我无法使用VB,因为它被GPO取消激活.

这个页面使用它

D21包含:

=WENN(ISTZAHL(DATWERT(C21));"date";"no date")
in english
=IF(ISNUMBER(DATEVALUE(C21))...
Run Code Online (Sandbox Code Playgroud)

C21这个:

=HEUTE() # in english: =TODAY() Maybe other dates later, but allways in the correct format
Run Code Online (Sandbox Code Playgroud)

但总是回归"没有约会"

Mát*_*ász 8

用这个:=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
Run Code Online (Sandbox Code Playgroud)

注意:CELL不易变,所以如果更改源单元格的格式,它将不会自动刷新,您需要重新计算工作表/书籍,打开公式并按Enter键(也可以通过任何其他易失性公式启动自动重新计算)会使它刷新).

  • 有趣的是,没有考虑使用CELL()。如果公式的格式设置为*时间*,可能会误报,不是吗?同样,在我看来,如果您从* time *到* general *往返,那么* time *格式,`CELL(“ format”,...)`将返回G而不是D8。需要进一步调查... (2认同)
  • 这仅适用于某些数据格式,例如“短日期”,但不适用于其他数据格式,例如格式下拉列表中的“长日期”。 (2认同)

GBG*_*OLC 8

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

=ISERROR(DATE(DAY(A1),MONTH(A1),YEAR(A1)))
Run Code Online (Sandbox Code Playgroud)

该公式的工作原理是评估日期的每个组成部分:DAY,MONTH和YEAR,然后使用DATE函数对其进行汇总。

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

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

对于“条件格式设置”很有用。

  • DATE 函数首先需要年份,然后是月份,然后是日期,因此指示的公式应为 =ISERROR(DATE(YEAR(A1),MONTH(A1),DAY(A1)))。 (2认同)
  • A1 中的任何数字都将被视为日期,无论其格式是否如此。如果我在A1中有1234.56,那么写出的公式是假的,意味着没有错误,所以它是一个日期。真的吗? (2认同)

tey*_*lyn 5

Excel 将日期存储为数字。1 是 1-Jan-1900。

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

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

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

  • @MátéJuhász,它不会将所有日期格式识别为日期,即使它们是从数字格式对话框的日期部分中选取的。 (3认同)