Programação Macro de Planilha de Escala de Serviço

Olá camaradas.
Estou tendo dificuldade para elaborar uma planilha de escala de serviço bem específica. Se alguém aceitar o desafio, aqui vai a descrição:

Planilha de escala mensal de serviço de plantão de 24h, onde eu cadastro os nomes dos funcionários e posso acrescentar ou excluir funcionários conforme realidade da empresa.
Ao elaborar a escala eu coloco os impedimentos de cada funcionário (impedimentos são os dias em que o funcionário sugere que não seja escalado em razão de motivos particulares, ex: Funcionário 1 não deve ser escalado nos dias 7, 8 e 9), de modo que eu tente atender os impedimentos de todos sempre que possível.
As escalas devem se equilibrar ao longo do ano, de modo que todos trabalhem a mesma quantidade de dias (ou o mais próximo de igualar esta quantidade).
Os dias da semana são divididos em cores para classificar a escala, ex:
CINZA - de segunda a quinta
VERDE - sexa-feira e véspera de feriado
VERMELHA - sábados e feriados
AMARELA - domingos e términos de feriado
A planilha também deve equilibrar a quantidade de cores de escalas da forma mais igualitária possível para todos os funcionários (ex.: ao longo do ano todos tiveram 15 escalas cinzas, 10 escalas verdes, etc. o mais igualitário possível).

A ideia é que eu cadastre essas informações e pressione um botão que já faz a distribuição dos nomes nos dias do mês conforme os critérios de impedimentos e equilíbrio de quantidade de escalas e suas classificações de cores.

Sei que é um baita desafio, mas se a mente humana consegue realizar esta tarefa (de forma bem demorada) creio que o computador também seja capaz.

Caso alguém se interesse em me ajudar, estarei pronto para sanar as dúvidas que surgirem.

Grato!

Um outro critério importante que eu esqueci de mencionar:
O funcionário deve ter uma folga mínima de 48h entre um plantão e outro, ex.: Funcionário 1 trabalhou 24h no dia 5, portanto não pode ser escalado de novo nos dias 6 ou 7.

@DiegoFranco, seu problema parece ser uma solução completa, um sistema de escalas. Se tiver uma ajuda específica para solucionar o seu problema será mais fácil de responder.
Agora se esta buscando uma solução completa mesmo, talvez seja melhor contratar um profissional para conversarem ele desenvolver quem sabe um software, ou mesmo uma planilha especifica para o seu uso.
Recomendo também pesquisar se já não existem softwares para este tipo de distribuição já que ela me parece bastante comum.