我正在使用Google表格,并且试图确定列中列出的日期的任何值是否等于今天的日期。
我尝试将COUNTIF
公式,ISDATE
公式和IF
公式与TODAY()
的值相对使用,似乎没有任何作用。
=IF('Invoices-Quickbooks-Data'!L:L,ISDATE(TODAY()),true)
这个公式实际上对我来说是最好的。我希望它能够计算出是否有任何值等于“今天的日期”。具有讽刺意味的是,这告诉我答案是TRUE
,即使没有一个日期与今天的日期实际匹配,所以我不确定发生了什么。
答案 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值的原因。
工作表中一个非常酷的功能是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)