Формула счетчиков с использованием функции дня недели - PullRequest
0 голосов
/ 04 января 2019

У меня есть эта формула, которую я использую для условного форматирования, которая выделяет ячейки на основе даты в столбце AG. Я получил формулу от гения stackoverflow: -)

Логика:

Если Today() - понедельник, мне нужно выделить ячейку, если дата в AG - ПРЕДЫДУЩАЯ пятница, суббота и воскресенье

Если Today() - вторник-пятница, тогда мне нужно выделить, если дата в AG - предыдущий день

Формула прекрасно работает в ячейках условного форматирования, но я также хотел бы адаптировать ее к формуле COUNTIFS, чтобы можно было подсчитать количество записей, соответствующих критериям.

Вот формула: =OR(AND(WEEKDAY(TODAY())>= 3,WEEKDAY(TODAY())<=6,INT(AG10)=INT(TODAY()-1)),AND(WEEKDAY(TODAY())=2,INT(AG10)>=INT(TODAY()-3),INT(AG10)<=INT(TODAY()-1)))

Может кто-нибудь помочь мне настроить его для работы с COUNTIF или COUNTIFS?

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Так что просто для полноты (с извинениями перед @Scott Craner за заимствование его формулы) это должно работать, даже если значения являются datetime:

=IF(AND(WEEKDAY(TODAY())>= 3,WEEKDAY(TODAY())<=6),COUNTIFS(AG:AG,">="&TODAY()-1,AG:AG,"<"&TODAY()),IF(WEEKDAY(TODAY())=2,COUNTIFS(AG:AG,">=" & TODAY() -3,AG:AG,"<"&TODAY()),0))

потому что Today () - 1 - это 3/1/19 00:00, а Today () - 01/1/19 00:00, поэтому что угодно> = первое и <второе (например, 01.03.19 12: 00) должно быть вчера. </p>

0 голосов
/ 04 января 2019

Использовать SUMPRODUCT:

=SUMPRODUCT(((WEEKDAY(TODAY())>= 3)*(WEEKDAY(TODAY())<=6)*(INT(AG10:AG100)=INT(TODAY()-1)))+((WEEKDAY(TODAY())=2)*(INT(AG10:AG100)>=INT(TODAY()-3))*(INT(AG10:AG100)<=INT(TODAY()-1))))

Если у Даты в AG нет компонента времени, тогда мы можем использовать:

=IF(AND(WEEKDAY(TODAY())>= 3,WEEKDAY(TODAY())<=6),COUNTIF(AG:AG,TODAY()-1),IF(WEEKDAY(TODAY())=2,COUNTIFS(AG:AG,">=" & TODAY() -3,AG:AG,"<="&TODAY()-1),0))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...