Você só precisa adicionar uma maneira de marcar os agentes que não estão disponíveis e calcular um índice para cada célula.
Eu adicionei duas linhas acima dos rótulos do agente, o primeiro permite que os agentes sejam marcados como não disponíveis. Eu adicionei algumas formatações condicionais à cor da célula e localizo o nome dos agentes indisponíveis.
O outro é uma linha auxiliar que é um índice incremental para os agentes disponíveis no formato =IF(9:9="",MAX($C8:C8)+1,"-")
Também adicionei uma coluna auxiliar, que é apenas o índice da linha, que começa em 0. (As colunas auxiliares podem ser incorporadas diretamente à fórmula da tabela, mas dificultam a leitura. A linha e a coluna do auxiliar podem obviamente ficar ocultas).
A fórmula na tabela usa apenas uma fórmula simples de =INDEX(<docs_id_list>,MATCH(..,<docs_id_index_list>,0))
.
A fórmula da tabela é
=IFERROR(INDEX('Document List'!$B:$B,MATCH($A:$A*(COUNTA($C$10:$P$10)-COUNTIFS($C$9:$P$9,"<>"))+$8:$8,'Document List'!$A:$A,0)),"-")
(o que obviamente pressupõe que sua lista de documentos esteja nas colunas A e B de uma planilha chamada "Lista de documentos")
Minha solução usa uma fórmula simples de primeiro a entrar / sair, mas seria possível ajustar a fórmula usando o número do dia da semana para iniciar a alocação em uma célula diferente para que a tabela seja direcionada aos agentes na coluna da esquerda.