Я бы предположил, что вы не хотите перекрывать часы с одним и тем же днем (один сотрудник всегда разговаривает по телефону), поэтому, исходя из предложения Райстафариана, я бы составил отдельный список смен, которым назначен номер.
Order Schedule
=RAND() 9-10
=RAND() 10-11
=RAND() 11-12
=RAND() 12-1
=RAND() 1-2
=RAND() 1-3
=RAND()
=RAND()
=RAND() // Since you have more employees than schedules,
=RAND() // copy formula to as many blank results as you have employees (30).
Затем выполните сортировку вручную по столбцу «Порядок», и вы получите 30 случайных результатов:
Order Schedule
0.3 <blank>
0.4 1-3
0.5 <blank>
.. <blank>
.. 9-10
Теперь создайте новую таблицу со списком сотрудников и используйте простую формулу для ссылки на случайные результаты графика, например, так, чтобы при повторной сортировке значений они выравнивались (случайным образом) перед каждым сотрудником.
Employee Today's schedule
John =B2
Jane =B3
.. =B4
.. =B5
.. =B6
В результате чего-то вроде этого:
Employee Today's schedule
John <blank>
Jane 12-1
.. <blank>
.. 3-4
.. 9-10
На этом этапе важно вручную скопировать эти значения (Специальная вставка ...Как значения) в фиксированную таблицу ежедневного расписания, как в вашем вопросе, в противном случае любой новый вид навсегда заменит ваши результаты. Также сделайте так, чтобы оба списка сотрудников всегда совпадали в одном и том же порядке.
Заметьте, я дважды выделил слово manual . Если вы хотите автоматизировать эти задачи, вам понадобится макрос VBA для этого, поскольку нет формулы для автоматической сортировки или автоматического копирования формул в фиксированные значения где-либо еще.