Un'alternativa potrebbe essere:
=SE(E(F4>=$C$5;F4<=$D$5;GIORNO.SETTIMANA(F4;2)<6;CONTA.SE($E5:E5;"F")<$E$5);"F";"")
E poi trascinare a destra sulla riga. L'esempio si applica alla cella F5.
Funziona così com'è sui full-time... Resta da discriminare quali giorni spettino a casa di default a chi fa il part-time. Se si riesce a determinare, basta agire sulla costante della disuguaglianza [GIORNO.SETTIMANA(F4;2)<6] rendendo dinamico il 6, oppure sdoppiandola per far prendere una parte della settimana (se è maggiore di un giorno della settimana E minore di un altro), oppure se son giorni spezzettati (tipo che la persona lavora lunedì mercoledì e venerdì) allora controllare che non siano presenti in un elenco.
Di sicuro fa comodo un secondo foglio in cui raccogliere tutte le info del dipendente: Tipo di contratto (e quindi annesse ore di lavoro settimanale da dividere per 8 e confrontare con il CONTA.SE), quali giorni lavorativi lavora (per eventualmente gestire il caso "spezzettato"), magari raccogliere tutte le feste (tipo il 06/01) e segnare "Fe" di default e altre eventualità.