Динамический вращающийся график работы Excel - PullRequest
0 голосов
/ 02 июля 2018

У меня здесь довольно высокий заказ,

Я пытаюсь составить ротационный список санитарных условий на оставшуюся часть года для 3 команд.

Я хочу, чтобы на листе автоматически назначались рабочие места членов команды (комнаты; столбцы B, C, D) в зависимости от дней недели работы.

Членам команды 1 может быть назначен только любой номер с понедельника по пятницу. Члены команды 4 могут быть назначены только в любую комнату по субботам и являются предпочтительной командой по воскресеньям. Члены команды 5 могут быть назначены только в любой комнате в среду и субботу и являются предпочтительной командой по субботам

Каждый день в столбце A будет иметь 3 (столбцы B-D) разных идентификатора сотрудника в каждой области (Комната)

Я хочу, чтобы на листе все были равномерно распределены по событиям и чтобы все работали во всех трех наборах комнат.

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

У меня есть формула в столбце B, которая показывает, что я пытаюсь сделать, но это была работа другого человека, и у меня возникли проблемы с адаптацией к моим потребностям. В основном столбцы B, C и D нуждаются в формулах.

Это формула в ячейке B3, и я просто скопировал ее =IF(OR(WEEKDAY($A2)=1,WEEKDAY($A2)=7),IFERROR(INDEX(Team1,MOD(MATCH(OFFSET(B2,IF(WEEKDAY($A2)=5,-5,-5),0),Team1,0),$U$2)+1),$G$2),IFERROR(INDEX(Team1,MOD(MATCH(OFFSET(B2,IF(WEEKDAY($A2)=2,-3,-1),0),Team1,0),$U$2)+1),$G$1))

Команды расположены в 3 отдельных столбцах с использованием именованных диапазонов. Я не уверен, как набрать приведенную выше формулу, чтобы включить все три команды, а также получить формулу для использования команды 4 только в субботу-вторник, команды 5 только в среду-субботу и команды 1 только в понедельник-пятницу.

Мне бы очень хотелось, чтобы я мог загрузить этот лист для всех желающих.

Спасибо за любую помощь, которую я могу получить в этом!

1 Ответ

0 голосов
/ 09 июля 2018

Ответил с другого форума и отлично работает .. нет необходимости в VBA

Это предложение вносит несколько изменений в организацию команды. столы. Это предложение также добавляет вспомогательный столбец (E), который может быть перемещен и / или скрыты в эстетических целях и заполняются с использованием: =IF(WEEKDAY(A2,16)=1,IF(COUNTIFS(E$1:E1,4)< COUNTIFS(E$1:E1,5),4,5),IF(WEEKDAY(A2,16)=2,IF(COUNTIFS(E$1:E1,5)< COUNTIFS(E$1:E1,4),5,4),IF(WEEKDAY(A2,16)<=4,IF(COUNTIFS(E$1:E1,4)< COUNTIFS(E$1:E1,1),4,1),IF(COUNTIFS(E$1:E1,5)< COUNTIFS(E$1:E1,1),5,1))))

Столбец комнаты 4 заполняется с помощью:

=INDEX(H$5:L$22,IF(MOD(COUNTIFS(E$2:E2,E2)+2*(COUNTIFS(E$2:E2,E2)-1),COUNTIFS(I$5:M$22,E2))=0,COUNTIFS(I$5:M$22,E2),MOD(COUNTIFS(E$2:E2,E2)+2*(COUNTIFS(E$2:E2,E2)-1),COUNTIFS(I$5:M$22,E2))),IF(E2=1,1,IF(E2=4,3,5)))

Колонка комнаты 5 и 6 заполняется с помощью:

=INDEX(H$5:L$22,IF(MOD(COUNTIFS(E$2:E2,E2)+2*(COUNTIFS(E$2:E2,E2)-1),COUNTIFS(I$5:M$22,E2))=0,0,MOD(COUNTIFS(E$2:E2,E2)+2*(COUNTIFS(E$2:E2,E2)-1),COUNTIFS(I$5:M$22,E2)))+1,IF(E2=1,1,IF(E2=4,3,5)))

Колонка комнаты 7 и 8 заполняется с помощью:

=INDEX(H$5:L$22,IF(MOD(COUNTIFS(E$2:E2,E2)+2*(COUNTIFS(E$2:E2,E2)-1),COUNTIFS(I$5:M$22,E2))=COUNTIFS(I$5:M$22,E2)-1,1,IF(MOD(COUNTIFS(E$2:E2,E2)+2*(COUNTIFS(E$2:E2,E2)-1),COUNTIFS(I$5:M$22,E2))=0,0,MOD(COUNTIFS(E$2:E2,E2)+2*(COUNTIFS(E$2:E2,E2)-1),COUNTIFS(I$5:M$22,E2)))+2),IF(E2=1,1,IF(E2=4,3,5)))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...