使用 excel 公式从单元格中提取日期

Extracting Date From Cells using excel formulas

我正在探索从包含文本的单元格中提取数据的可行性。最终。我将根据相对于今天的日期应用条件格式规则,但现在我只需要能够提取它们。

到目前为止,我已经取得了以下成就:

为了实现这一点,我使用了网上找到的公式 =IFERROR(DATEVALUE(LEFT(RIGHT(B2,(LEN(B2)-(FIND("-",B2)-3))),11)),"")。问题在于,如果一个单元格仅包含一个日期,则长度会从自身中减去,并且不会返回任何内容。我试过修改上面的等式,但 运行 一直出错。

希望有人能帮我修改这个公式。或者,如果有人知道如何使用 excel 公式提取日期,那就太好了。

问题是,如果没有其他文本,它就是一个真实日期,而真实日期是一个双精度日期,其中没有 -

简单的解决方法是将 "" return 从 IFERROR 更改为 B2:

=IFERROR(DATEVALUE(LEFT(RIGHT(B2,(LEN(B2)-(FIND("-",B2)-3))),11)),B2)

如果这还不够,您可以执行 IF 来测试日期是否为:

=IF(ISNUMBER(B2),B2,IFERROR(DATEVALUE(LEFT(RIGHT(B2,(LEN(B2)-(FIND("-",B2)-3))),11)),""))

这是我想出的解决方案似乎适用于几乎任何日期格式前提是日期位于单元格的顶部。请注意这是针对日期在我工作簿的单元格 H6。

可以在下面输入下面的公式,从文本中的单元格中提取日期。

=TEXT(IFERROR(LEFT(H6,SEARCH(CHAR(10),H6,1)-1),H6),"dd-mmm-yyyy")

此公式检查日期是否在 3 年以内并且 returns 是否为真值或假值。如果提取的日期已过期,这可用于有条件地格式化单元格。

=IF(ISBLANK(H6),FALSE,IFERROR(IF(DATEVALUE(TEXT(IFERROR(LEFT(H6,SEARCH(CHAR(10), H6, 1)-1),H6),"dd-mmm-yyyy"))<=TODAY()-(365*3),TRUE,FALSE),TRUE))

对我来说效果很好!