Я перенес ваши данные образца на лист, чтобы данные утренней смены были в столбцах A: C, а ночные смены в столбцах E: G. Критическим столбцом дня недели является столбец H. Я предположил, что ваши данные имеют 1 = воскресенье.
Я создал два именованных диапазона, «AM» и «PM», чтобы покрыть столбцы для утренних и ночных смен. Важно, чтобы диапазоны начинались со строки 1. Примечание . Также крайне важно, чтобы моя формула не записывалась в строке выше строки 3 на рабочем листе.
Я добавил столбцы в ваш макет справа, по одному для каждого сотрудника, и записать имя сотрудника в строке 2 каждого столбца. В моем листе эти столбцы в K: M, а формула идет к K3. Оттуда он копируется во все остальные ячейки в моих трех столбцах.
=IF($H3=6,IF(COUNTIF(INDEX(PM,ROW(),0),K$2),1,""),IF($H3=7,IF(COUNTIF(INDEX(PM,ROW(),0),K$2),IF(OR(COUNTIF(INDEX(AM,ROW()-1,0),K$2),COUNTIF(INDEX(PM,ROW()-2,0),K$2)),1,""),""),""))
В трех добавленных мной столбцах показано 1 для каждого заработанного выходного дня.
Формула отбрасывает все дни, которые не пятница или суббота. По пятницам присуждается «1», если имя появляется в смене PM. Для субботнего вечера работа и выходной день присуждаются, если в ту же неделю работали либо в пятницу, либо в четверг. Из этого правила следует, что вы не можете начать свои месяцы в первый день, если это суббота. Предыдущий четверг должен быть включен в данные за месяц. Если это не так, ошибка не возникнет (если формула не находится в строке 2), но результат будет неправильным из-за указанной строки, не содержащей действительных данных.