Проверка, если какое-либо значение в столбце равно сегодняшней дате - PullRequest
0 голосов
/ 03 июня 2019

Я работаю в Google Sheets и пытаюсь определить, совпадает ли какое-либо значение дат, указанное в столбце, с сегодняшней датой.

Я пытался использовать формулу COUNTIF, формулу ISDATE и формулу IF против значения TODAY(), и, похоже, ничего не работает правильно.

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

Эта формула действительно работает лучше всего для меня. Я ожидал бы, что это вычислит, если любое из значений будет равно Сегодняшней Дате. По иронии судьбы это говорит мне о том, что ответ TRUE, даже если ни одна из дат на самом деле не соответствует сегодняшней дате, поэтому я не уверен, что происходит.

Ответы [ 2 ]

0 голосов
/ 04 июня 2019

Вы можете проверить это с помощью простой IF формулы:

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

0


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

0

0 голосов
/ 03 июня 2019

Во-первых, причина, по которой ваша формула всегда возвращает 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


Расширенное решение:

Действительно интересная функция в листах - это функция query () , которая, по сути, позволяет выполнять SQL-подобный запрос в диапазоне ячеек.Мне нравится это, потому что это делает формулы очень читабельными - например, все решение ARRAYFORMULA, приведенное выше, может быть заменено на:

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