Во-первых, причина, по которой ваша формула всегда возвращает true, заключается в том, что ISDATE(TODAY())
всегда будет возвращать true (когда сегодня не дата?), И, кроме того, вы не можете использовать оператор IF, напримерчто запросить целый столбец.Первым аргументом для IF является условие, а диапазон столбца не является условием.
Чтобы применить функцию к диапазону, вы хотите использовать ARRAYFORMULA .Вот как вы можете проверить диапазон ячеек, чтобы увидеть, содержит ли какое-либо значение в столбце (или диапазоне) дату, равную сегодняшней:
=IFERROR(VLOOKUP(TRUE,ARRAYFORMULA(IFERROR(DATEVALUE(A:A)=TODAY(),FALSE)),1,FALSE),FALSE)
Просто замените A: A на диапазон, который вы хотите проверить,Возвращаемым ArrayFormula является массив, поэтому мне нужно использовать VLOOKUP для проверки любых ИСТИННЫХ значений внутри него.
![Screenshot](https://i.stack.imgur.com/CrCoO.png)
Расширенное решение:
Действительно интересная функция в листах - это функция query () , которая, по сути, позволяет выполнять SQL-подобный запрос в диапазоне ячеек.Мне нравится это, потому что это делает формулы очень читабельными - например, все решение ARRAYFORMULA, приведенное выше, может быть заменено на:
=IFERROR(QUERY('Invoices-Quickbooks-Data'!L:L,"select count(L) where dateDiff(L,now()) = 0 label count(L) ''",-1) > 0,FALSE)