Excel: у меня есть две рабочие формулы. Нужно заставить их работать на основе = IF (WEEKDAY) - PullRequest
0 голосов
/ 19 апреля 2020

Я строю ротацию расписания, в которой группа сотрудников является либо первичной, либо вторичной, либо вообще не включена.

В моей электронной таблице есть строка, которая проверяет, покрыты ли как первичные, так и вторичные в какой-либо день, но вторичные не используются в выходные дни. (P = основной, WP = первичный выходной, HP = первичный выходной, то же самое со вторичными для отслеживания целей)

В приведенной ниже строке 3 приведены даты, начинающиеся в столбце B как первое месяца, B3 = 5/1/2020 (это пятница), C3 = 5/2/2020 (суббота) и т. Д. c

Это работает с понедельника по пятницу: =IF(AND(SUM(COUNTIF(B5:B11,"p")+(COUNTIF(B5:B11,"wp"))+(COUNTIF(B5:B11,"Hp")))=1)*(SUM(COUNTIF(B5:B11,"s")+(COUNTIF(B5:B11,"ws"))+(COUNTIF(B5:B11,"Hs")))=1),"G","B")

Это работает для выходных: =IF(AND(SUM(COUNTIF(C5:C11,"p")+(COUNTIF(C5:C11,"wp"))+(COUNTIF(C5:C11,"Hp")))=1),"G","B")

Проблема в том, что каждый месяц, когда я go создаю следующий график, мне приходится переставлять формулы в этом ряду, чтобы они соответствовали рабочим дням или выходным, соответственно , Я хотел бы объединить эти формулы в = IF (Выходные ,, 2) <6, <code>weekday formula, иначе weekend formula

Моя попытка =IF((WEEKDAY,B$3,2)<6,IF(AND(SUM(COUNTIF(B5:B11,"p")+(COUNTIF(B5:B11,"wp"))+(COUNTIF(B5:B11,"Hp")))=1)*(SUM(COUNTIF(B5:B11,"s")+(COUNTIF(B5:B11,"ws"))+(COUNTIF(B5:B11,"Hs")))=1),"G","B"),IF(AND(SUM(COUNTIF(B5:B11,"p")+(COUNTIF(B5:B11,"wp"))+(COUNTIF(B5:B11,"Hp")))=1),"G","B"))

1 Ответ

0 голосов
/ 19 апреля 2020

У вас неправильные скобки в условии IF.

ваш = IF ((WEEKDAY, B $ 3,2) <6, </p>

правильный = IF (WEEKDAY (B $ 3,2)) <6, </p>

Фон: По умолчанию для функции Weekday () возвращается 1 для воскресенья, 2 для понедельника и т. Д. c и 7 для субботы.

Если если вы хотите запустить формулу, если день недели - с понедельника по пятницу, вам нужно проверить, является ли возвращаемое число больше 1, а также меньше 7. Вы можете обернуть функцию AND () вокруг двух функций Weekday () для Условие IF, подобное следующему:

=if(AND(Weekday(A1)>1,Weekday(A1)<7)),WeekdayFormula,WeekendFormula)

Чтобы избежать сложной конструкции AND для условия IF, вы можете использовать параметр 2 в функции Weekday (). Это вернет понедельник как 1 и воскресенье как 7, и все, что вам нужно проверить для дня недели, это если число меньше 6. Например:

=if(Weekday(A1,2)<6,WeekdayFormua,WeekendFormula)
...