
Fórmula genérica
=EOMONTH(date,0)+1-WEEKDAY(EOMONTH(date,0)+1-dow)
Resumo
Para obter o último dia da semana em um mês (ou seja, o último sábado, a última sexta-feira, a última segunda-feira, etc.), você pode usar uma fórmula baseada nas funções EOMONTH e WEEKDAY.
No exemplo mostrado, a fórmula em D5 é:
=EOMONTH(B5,0)+1-WEEKDAY(EOMONTH(B5,0)+1-C5)
Explicação
Primeiro, essa fórmula determina o primeiro dia do próximo mês * após * uma determinada data. Ele faz isso usando EOMONTH para obter o último dia do mês e, em seguida, adicionando um dia:
=EOMONTH(B5,0)+1
Em seguida, a fórmula calcula o número de dias necessários para "reverter" para o último dia da semana solicitado no mês anterior (ou seja, o mês da data original):
WEEKDAY(EOMONTH(B5,0)+1-C5)
Em WEEKDAY, EOMONTH é usado novamente para obter o primeiro dia do mês seguinte. A partir dessa data, o valor do dia da semana é subtraído e o resultado é alimentado em WEEKDAY, que retorna o número de dias para reversão.
Por último, os dias de reversão são subtraídos do primeiro dia do mês seguinte, o que produz o resultado final.
Outros dias da semana
Na forma geral da fórmula no topo da página, o dia da semana é abreviado como "dow". Este é um número entre 1 (domingo) e 7 (sábado) que pode ser alterado para obter um dia da semana diferente. Por exemplo, para obter a última quinta-feira de um mês, defina dow como 5.
Nota: Encontrei essa fórmula em uma resposta no fórum MrExcel de Barry Houdini.