检查列中的任何值是否等于今天的日期

时间:2019-06-03 17:30:34

标签: if-statement google-sheets google-sheets-formula array-formulas

我正在使用Google表格,并且试图确定列中列出的日期的任何值是否等于今天的日期。

我尝试将COUNTIF公式,ISDATE公式和IF公式与TODAY()的值相对使用,似乎没有任何作用。

=IF('Invoices-Quickbooks-Data'!L:L,ISDATE(TODAY()),true)

这个公式实际上对我来说是最好的。我希望它能够计算出是否有任何值等于“今天的日期”。具有讽刺意味的是,这告诉我答案是TRUE,即使没有一个日期与今天的日期实际匹配,所以我不确定发生了什么。

2 个答案:

答案 0 :(得分:0)

首先,您的公式始终返回true的原因是因为ISDATE(TODAY())将始终返回true(今天不是是日期吗?),此外,您不能使用像这样的IF语句查询整列。 IF的第一个参数是条件,而列范围不是条件。

要在某个范围内应用功能,您想使用ARRAYFORMULA。这是您检查单元格范围的方法,以查看列(或范围)中的任何值是否包含等于今天的日期:

=IFERROR(VLOOKUP(TRUE,ARRAYFORMULA(IFERROR(DATEVALUE(A:A)=TODAY(),FALSE)),1,FALSE),FALSE)

只需将A:A替换为您要检查的范围即可。 ArrayFormula的返回是一个数组,这就是为什么我必须使用VLOOKUP检查其中是否包含任何TRUE值的原因。

Screenshot


高级解决方案:

工作表中一个非常酷的功能是query() function,它实际上使您可以在一系列单元格上运行类似SQL的查询。我喜欢它,因为它使公式非常易读-例如,可以将上述整个ARRAYFORMULA解决方案替换为:

=IFERROR(QUERY('Invoices-Quickbooks-Data'!L:L,"select count(L) where dateDiff(L,now()) = 0 label count(L) ''",-1) > 0,FALSE)

答案 1 :(得分:0)

您可以使用简单的IF公式进行检查:

=ARRAYFORMULA(IF(LEN(A2:A), IF(A2:A=TODAY(), TRUE), ))

0


=ARRAYFORMULA(IF(A2:A=TODAY(), TRUE, ))

0